Segue o código do jogo que, creio, cobriu todas as possibilidades.
import java.util.Random;
import java.util.Scanner;
public class jogoAdvinhacao {
public static void main(String[] args) {
int numAleatorio = new Random().nextInt(100);
int i = 0;
int chute = 0;
String rodada = "";
System.out.println("JOGO DA ADVINHAÇÃO:");
System.out.println("=======================================");
System.out.println("Você terá 5 tentativas para advinhar o número escolhido, de 0 a 100.");
while (chute != numAleatorio && i < 5) {
switch (i) {
// switch para adaptar a frase ao número de rodada correta.
case 0:
rodada = "primeiro";
break;
case 1:
rodada = "segundo";
break;
case 2:
rodada = "terceiro";
break;
case 3:
rodada = "quarto";
break;
case 4:
rodada = "último";
break;
}
System.out.print(String.format("Digite seu %s chute: ", rodada));
Scanner leitura = new Scanner(System.in);
chute = leitura.nextInt();
if (i < 5 && chute == numAleatorio) {
System.out.println(String.format("Parabéns, você acertou o número no %s chute!", rodada));
} else if (i < 4 && chute < numAleatorio) {
System.out.println("Você errou! Tente um número maior.");
} else if (i < 4 && chute > numAleatorio) {
System.out.println("Você errou! Tente um número menor.");
} else {
System.out.println("Você errou, e acabaram suas chances. ='(");
System.out.println("Que pena, você perdeu!");
System.out.println(String.format("O número era %d.", numAleatorio));
}
i++;
}
}
}
Dúvida: para que esse código fosse "rodável", tive que inicializar as variáveis i, chute e rodada. Em quais situações elas podem, simplesmente, ser declaradas; e em quais outras há a necessidade de serem inicializadas com algum valor?