2016-11-25 8 views
-2

これは私のコードです。ユーザーに番号を入力して、その番号にグローバルに宣言されたintを設定したいとします。 「メンバー」intが0に初期化され、私はメンバーをプリントアウトする際に関係なく、私がしようとするもの、それは私がループ条件しばらくの間、数に> 0スキャナでプロンプトが表示されたときにintを設定しない

 Scanner sc = new Scanner(System.in); // Create a scanner object 
    System.out.println("Enter amount of members"); // Prompt user 

    while (!sc.hasNextInt()) { 
     sc.next(); 
     try { 
      members = sc.nextInt(); // set entered value to members int 
     } catch (Exception e) { // catch exceptions. 
      System.out.println("Error please enter a number greater than 0"); 
      sc.nextLine(); // clear line to prevent infinite loop 
     } 
    } 
    sc.nextLine(); // clear input 
+1

は' sc.next()は何ですか? –

+0

また、 'sc.nextLine();は何ですか? //無限ループを防ぐためにラインをクリアする '? –

+0

あなたはマウント値を与えるようにユーザーに依頼してから、Integerを無視する 'while(!sc.hasNextInt())'を使用します。私はあなたが欲しいものを理解することができません。 – TomN

答えて

-1

使用sc.nextInt()sc.hasNext()を入力した場合でも0言いません。

while (sc.hasNext()){ 
    members = reader.nextInt(); 
    ... 
} 

また、sc.nextLine();を使用して行をクリアしません。やっ `;

あなたがスキャナを使用する方法の詳細を検討する必要が

Java Scanner Continuous User input?

+0

それを削除しても。 nextLine()は、なぜそれが動作していないのかをidkから出力すると、メンバintが0になってしまいます。私はそれをpublic static intメンバ= 0としてグローバルに宣言しています。 – Nick

+0

私はあなたがよりよく理解できるように答えを編集しました – Amita

+0

ありがとう! – Nick

関連する問題