Porém estou encontrando a seguinte dificuldade: as variáveis sorteio1, sorteio2, sorteio3, não podem ter o mesmo valor… Existe alguma maneira para efetuar isso?
Pensei até em fazer intervalos, por exemplo, o sorteio1 vai de 1 ate 2, o sorteio2 vai de 3 até 4 e o sorteio3 vai de 5 ate 6. Porém não encontrei formas de aplicar esse sorteio por intervalo no código acima. Talvez usando um for para cada variavel sorteio funcionaria, porém sinto que talvez fosse uma gambiarra…
Existe alguma maneira de fazer isso SEM usar array, vector, list etc?
Sem usar array é mais “chato” (já que o mais simples seria colocar todos os valores possíveis em um array, embaralhá-lo e escolher os 3 primeiros - método também conhecido como Algoritmo Fisher-Yates).
Mas como não quer usar array (por que não? é a solução mais simples) o jeito é usar a “força bruta”:
Repare que também mudei a forma de sortear o número, usando a classe java.util.Random. Ao fazer nextInt(6), eu tenho um número entre 0 e 5. Somando 1, o resultado é um número entre 1 e 6 (que parece ser o que você queria).
Lembrando que dependendo da quantidade de sorteios e do intervalo de números usado, esse código pode acabar demorando bastante, pois pode ser que o loop tenha que sortear muitas vezes até encontrar um número que não seja repetido.
V
victoresende19
Olá @hugokotsubo! Primeiramente muito obrigado por responder!
Infelizmente não posso usar array no momento pois ainda não foi formalizado no curso que estou fazendo…
Mas muito obrigado pela lógica que demonstrou no código, realmente compreendi! Porém agora está dando um erro, deve ser coisa boba, mas não identifiquei: Seria indentação?