Não entendo porque no loop for (int i = 0; i < qnt; i++), a mensagem "Entre com o nome da obra" é impressa no console logo depois de "Digite o nome do cliente". O bloco dentro da condicional if(sc.hasNextLine()) não deveria rodar só se eu inserisse uma nova linha no console? Alguém saberia me dar uma luz? Obrigado.
package sistemaTZ;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class CadastroCliente {
public static void main(String[] args) {
List<Cliente> clientes = new ArrayList<Cliente>();
List<Obra> obras = new ArrayList<Obra>();
Scanner sc = new Scanner(System.in);
System.out.println("digite quantos clientes quer cadastrar");
int qnt = sc.nextInt();
if(sc.hasNextLine()){
for (int i = 0; i < qnt; i++) {
System.out.println("Digite o nome do cliente:");
if(sc.hasNextLine()){
Cliente c = new Cliente(sc.nextLine());
clientes.add(c);
System.out.println("Entre com o nome da obra do cliente: ");
if(sc.hasNextLine()){
Obra o = new Obra(sc.nextLine());
obras.add(o);
}
}
}
}
for (int i = 0; i < clientes.size(); i++) {
Cliente c = (Cliente) clientes.get(i);
System.out.println(c);
}
sc.close();
}
}