2016-09-07 82 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); 
     } 
    } 
}