2017-08-28 13 views
-6

次のようにユーザー入力を読み込もうとしています - 変数 'n'が単純変数-nを見つけることができないwhileセッションでエラーが発生しました。do/whileループでエラーが発生しました。

public static void main(String[] args) { 
    do{ 

     Scanner reader = new Scanner(System.in); // Reading from System.in 
     System.out.println("Enter your choice: "); 
     int n = reader.nextInt(); // Scans the next token of the input as an int. 

     switch(n){ 
      case 1: System.out.println("load_flight1()"); 
       break; 
      case 2: System.out.println("load_flight2()"); 
       break; 
      case 3: System.out.println("load_flight3()"); 
       break; 
      case 4: System.out.println("generate_report()"); 
       break; 
      case 5: System.out.println("exit()"); 
       break; 
      default: System.out.println("Invalid menu choice"); 
        System.out.println("press any key:"); 
     } 
    }while ((n!=1) && (n!=2) && (n!=3) && (n!=4) && (n!=5)); 

誰かがどこに間違っているのでしょうか?

おかげ

+0

あなたの 'int n = reader.nextInt();'はスコープ外では見えません。 doループの前にローカル変数 'n'を導入する。 – DimaSan

+0

nは実際に範囲外です.... –

+1

説明されている問題とは関係ありませんが、各繰り返しでスキャナを作成しないでください。ループの前に1つのスキャナを宣言して作成し、内部で使用します。 – Pshemo

答えて

0

nの範囲は、条件がループの一部ではないdo ... while Loopの内側にあります。 ループ外に宣言してください。

Scanner reader = new Scanner(System.in); // Reading from System.in 
    System.out.println("Enter your choice: "); 
int n; 
do { 
    n = reader.nextInt(); 
    switch (n) { 
    case 1: 
     System.out.println("load_flight1()"); 
     break; 
    case 2: 
     System.out.println("load_flight2()"); 
     break; 
    case 3: 
     System.out.println("load_flight3()"); 
     break; 
    case 4: 
     System.out.println("generate_report()"); 
     break; 
    case 5: 
     System.out.println("exit()"); 
     break; 
    default: 
     System.out.println("Invalid menu choice"); 
     System.out.println("press any key:"); 
    } 

} while ((n != 1) && (n != 2) && (n != 3) && (n != 4) && (n != 5)); 
+0

'n = reader.nextInt();' whileループで実行する必要があります –

+0

@NahuelFouilleul whileループで実行されます – Jens

+0

このようなスイッチでは解析されない値を読み込んでいます;) – AxelH

関連する問題