2016-11-28 2 views
0
import java.util.Scanner; 
public class HelloWorld{ 
    public static void main(String args[]){ 
    Scanner dd = new Scanner(System.in); 
    System.out.println("Enter name"); 
    String b = dd.nextLine(); 
    System.out.println("Enter num"); 
    int num = dd.nextInt(); 
    } 
} 

UndWas ist der Unterschied zwischen zwei mehreren Benutzereingabe-Programmen?

import java.util.Scanner; 
public class HelloWorld{ 
    public static void main(String args[]){ 
     Scanner dd = new Scanner(System.in); 
     System.out.println("Enter num"); 
     int num = dd.nextInt(); 
     System.out.println("Enter name"); 
     String b = dd.nextLine(); 
    } 
} 

Warum diese nicht peoperly funktioniert (hat mich Name nicht zulassen, geben), während das erste man tut?

Ich habe eine neue Version ohne diese lästige "Scanner scan = new Scanner" gemacht. Und was ist mit dieser Lösung? Welche Nachteile kann es haben?

import java.util.Scanner; 
public class HelloWorld{ 
public static void main(String args[]){ 
    System.out.println("Enter num"); 
    int i = new Scanner(System.in).nextInt(); 
    System.out.println("Enter name"); 
    String b = new Scanner(System.in).nextLine(); 
    } 
} 
+0

vielleicht sollten Sie nextLine() alle Zeiten verwenden und den Wert auf den richtigen Typ – cralfaro

Antwort

0

Im zweiten Fall wird die nextInt() nicht Zeilenende-Zeichen abtastet, dass die Eingaben des Benutzers, wenn die Taste Return drücken.

Im ersten Fall wird zuerst nextLine() angetroffen, so dass sich das Problem nicht bemerkbar macht.

Die Moral der Geschichte ist zu immer Verwendung nextLine() und den resultierenden String entsprechend analysieren. Verwenden Sie etwas wie Integer#parseInt, um eine Zeichenfolge in eine ganze Zahl zu konvertieren.

+0

Es heißt "String kann nicht in int konvertiert werden" –

+0

Natürlich wird es. Siehe meinen letzten neuen Satz. – Bathsheba

0

Das zweite Programm erwartet zuerst einen Int und dann einen Namen. Und daher könnte ein Fehler auftreten, wenn ein Name eingegeben wird.

Verwandte Themen