2016-09-07 15 views
0

私はjavaの初心者で、端末に入力番号を受け取るプログラムを作成しようとしていて、0が入力されるまで新しい番号を要求し続けます。 0が入力された後、私はプログラムがすべての数を集計し、それらを合計することを望みます。しかし、私はプログラムをコンパイルしようとすると、私はこのエラーを取得:Java初心者 - 記号が見つかりません

enter image description here

相続コード:

import java.util.Scanner; 

public class SumTall { 
    public static void main(String[] args) { 
     Scanner tallscanner = new Scanner(System.in); 
     int tall = 0; 
     int tall1; 

     System.out.println("Write a number:"); 
     tall1 = Integer.parseInt(tallscanner.nextLine()); 

     while(tall1 > 0) { 
      System.out.println("Write another number:"); 
      tall1 = Integer.parseInt(tallscanner.nextLine()); 
      int tall2 = tall + tall1; 
     } 
     if(tall1 == 0) { 
      System.out.println(tall2); 
     } 
    } 
} 
+3

シンボルを見つけることができないということは、この場合、アクセスしようとしている変数が存在しないことを意味します。なぜなら、あなたの変数 'tall2'は、あなたが外にアクセスしている間、' while'ループの中で定義されているからです。 – px06

+1

コードを適切にフォーマットすると、何が間違っているかがわかります – Jens

+0

重複した質問で受け入れられた回答を見てください(このページを表示するにはこのページをリロードする必要があります)。 – Pshemo

答えて

1

あなたはwhileブロックでtall2を宣言し、しばらく外にそれを宣言します。そのブロックに固執するのはあなたの場合だけブロックに属しますが、あなたはそのバリアブルにアクセスしようとしていますtall2それはあなたがそのエラーを見ることができる理由です。それがあなたを助けることを願ってください。

宣言部分を外側に変更しました。

import java.util.Scanner; 

public class SumTall { 
    public static void main(String[] args) { 
     Scanner tallscanner = new Scanner(System.in); 
     int tall = 0; 
     int tall1,tall2; 

     System.out.println("Write a number:"); 
     tall1 = Integer.parseInt(tallscanner.nextLine()); 

     while(tall1 > 0) { 
      System.out.println("Write another number:"); 
      tall1 = Integer.parseInt(tallscanner.nextLine()); 
      tall2 = tall + tall1; 
     } 
     if(tall1 == 0) { 
      System.out.println(tall2); 
     } 
    } 
} 
関連する問題