Questa mattina, come esercizio per il mio corso di Java in Uni, ho dovuto scrivere un piccolo programma per chiedere all'utente di inserire alcuni dettagli, quindi stamparli di nuovo. Da allora ho finito di scriverlo, ma mi sono imbattuto in uno strano problema lungo la strada.Perché la riga 17 di questo programma Java non viene eseguita?
Vedere il codice qui sotto:
import java.util.Scanner;
public class Scanner_Exercise
{
public static void main (String[] args)
{
Scanner keyboardIn = new Scanner(System.in);
int accountId;
String accountName;
float accountBalance;
System.out.println("Account ID: "); //Line 13
accountId = keyboardIn.nextInt(); //Line 14
System.out.println("Account name: "); //Line 16
accountName = keyboardIn.nextLine(); //Line 17
System.out.println("Account balance: ");
accountBalance = keyboardIn.nextFloat();
}
}
Quando questo programma viene eseguito, linea 17 (vedi commenti) viene saltato; Account name:
viene stampato, ma all'utente non viene data la possibilità di inserire le informazioni, come se quella riga di codice fosse stata commentata. Non vengono lanciati errori L'output è simile al seguente: ID
Account:
Nome account:
equilibrio account:
Tuttavia, se posso passare le linee 13 e 14, con 16 e 17, come come segue, il programma funziona correttamente e nessuna linea viene saltata.
System.out.println("Account name: "); //Line 16
accountName = keyboardIn.nextLine(); //Line 17
System.out.println("Account ID: "); //Line 13
accountId = keyboardIn.nextInt(); //Line 14
Perché la linea 17 viene saltata nel primo caso, ma non il secondo?
Se è in qualche modo pertinente, sto usando JDK 6 Update 18 e TextPad 5.3.1.
Grazie, questo lo risolve. Avrei dovuto fare riferimento alla documentazione, in primo luogo. – Auguste
@Auguste vivi e impari! +1 per provare a fare i compiti e fare una domanda ragionevole! – Kiril