2016-09-07 72 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

你宣佈tall2while塊聲明它之外的一段時間。它只會在你的情況下堅持這個塊,它屬於while塊,但你試圖訪問這個變體,這就是你可以看到這個錯誤的原因。希望它能幫助你。

我改變了聲明部分的一面。

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