Não consigo entender o motivo do console não responder ao comando nextLine. Simplesmente ao executar a linha nada acontece. O prompt fica parado e mesmo que eu digite algo, nada aparece. O algoritmo até compila mas chega nessa linha nada que eu digito, aparece. Podem me ajudar por favor?
import java.util.Scanner;
public class C0609Exercicio05 {
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
int num;
String resposta;
System.out.print("Informe um número inteiro: ");
num = scan.nextInt();
System.out.print("O número é maior que zero: ");
resposta = scan.nextLine();
Quando você chama o nextInt() e pressiona ENTER, o Scanner lê o número inteiro, mas não consome o caractere '\n' que vem após ele.
Quem consome o '\n' é o nextLine(), por isso quando você digita um texto após o nextInt() e pressiona ENTER e em seguida chama o nextLine(), você recebe uma String vazia pois o nextLine() vai primeiro consumir aquele '\n' que ficou “pendurado” após o nextInt().
Para programas em linha de comando, como este seu exercício, eu recomendo não utilizar o nextInt(), ao invés disso, utilize somente o nextLine().
Veja:
import java.util.Scanner;
public class C0609Exercicio05 {
public static void main (String[] args) {
try {
Scanner scanner = new Scanner(System.in);
System.out.print("Informe um número inteiro: ");
int num = Integer.parseInt(scanner.nextLine());
System.out.print("O número é maior que zero: ");
String resposta = scanner.nextLine();
} catch (Throwable t) {
t.printStackTrace();
} finally {
System.exit(0);
}
}
}