2016-09-07 2 views
0

Я начинаю в java и пытаюсь создать программу, которая получает номера ввода в терминале и будет непрерывно запрашивать новые номера до тех пор, пока не будет введено значение 0. После ввода 0 я хочу, чтобы программа суммировала все числа и плюс их вместе. Но когда я пытаюсь скомпилировать программу, которую я получаю эту ошибку:java beginner - не могу найти символ

enter image description here

Heres код:

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

Взгляните на принятый ответ в двух экземплярах (возможно, вам нужно будет перезагрузить эту страницу, чтобы увидеть его), и найдите примеры с проблемой «scope». – Pshemo

ответ

1

Вы объявили tall2 в while блоке объявить его вне пока. он будет придерживаться этого блока только в вашем случае, когда он принадлежит блоку while, но вы пытаетесь получить доступ к этой переменной 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); 
     } 
    } 
} 
Смежные вопросы