2016-11-28 8 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(); 
    } 
} 

そして2つの複数のユーザー入力プログラムの違いは何ですか?

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(); 
    } 
} 

最初のものはない一方で、後者は、(私は名前を入力することはできません)peoperly動作しないのはなぜ?

私はその厄介な "Scanner scan = new Scanner"なしで新しいバージョンを作りました。 このソリューションはどうですか?それはどういうことでしょうか?第2のケースで

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

多分nextLine()を常に使用して、値を適切な型にキャストしてください – cralfaro

答えて

0

Returnキーを押すと、nextInt()は、ユーザが入力することを改行文字をスキャンしません。

最初のケースでは、nextLine()が最初に遭遇するので、問題はそれ自体現れません。

話の道徳は、に常にを使用して、結果として得られる文字列を解析します。文字列を整数に変換するには、Integer#parseIntのようなものを使用します。

+0

「文字列をint型に変換できません」 –

+0

もちろんです。私の最後の新しい文章を見てください。 – Bathsheba

0

2番目のプログラムでは、最初にIntに、次に名前が必要です。したがって、名前が入力されたときにエラーになる可能性があります。

関連する問題