Na linha 50 do código tive que alterar o .nextLine() para .next(), pois o programa não espera a entrada. Queria entender o porquê. Se na linha 17 ele espera.
Segue o código:
import java.util.Random; import java.util.Scanner;
public class Adivnhando { public static void main(String[] args) { Scanner leitura = new Scanner(System.in); int numero = new Random().nextInt(100); int chute; int tentativas; String continuar;
System.out.format("""
Bem vindo ao jogo de advinhação.
Você tem 5 tentativas de adivinhar meu número.
Meu número será entre 0 e 100.
Vamos começar?(S/N)""");
continuar = leitura.nextLine();
while(continuar.equalsIgnoreCase("S")){
for (int i = 0; i < 5; i++) {
System.out.println("Digite um chute: ");
chute = leitura.nextInt();
if(i<4){
if (chute > numero) {
System.out.println("Meu número é menor.");
} else if (chute < numero) {
System.out.println("Meu número é maior.");
} else if (chute == numero) {
System.out.println("Você acertou!!! Meu número é " + numero);
break;
}
}
if(i<3) {
tentativas = 4 - i;
System.out.println("Restam " + tentativas + " tentativas.");
} else if(i==3) {
System.out.println("Última tentativa...");
}
if(i==4 && chute!=numero){
System.out.println("Você não acertou. Meu número era "+numero+" T.T");
} else if (i==4 && chute==numero) {
System.out.println("Você acertou!!! Meu número é " + numero);
//break;
}
}
System.out.println("Quer jogar novamente? (S/N)");
continuar = leitura.next();
}
System.out.println("Obrigada por jogar, até a próxima. =^.^=");
leitura.close();
}
}