2013-10-24 2 views
-1

Я думаю, что отформатировал что-то неправильно или есть логическая ошибка, честно говоря, я не знаю. Я прокомментировал в нижней части программы ошибки. Вся помощь очень ценится.Не могу найти символы ошибки компиляции

public static void main (String args[]) { 
    String userInput; 

    Scanner kb = new Scanner (System.in); 

    System.out.print("Enter a string of characters: "); 
    userInput = kb.nextLine(); 
    int length = userInput.length(); 

    for (count=0; length<count; count++) { 
      char letter=userInput.charAt(count); 
      System.out.print(letter + " "); 
     } 
    } 

Ошибки:

javac "StringDown.java" (in directory: /home/user/Downloads) 
StringDown.java:16: cannot find symbol 
symbol : variable count 
location: class StringDown 
    for (count=0; length<count; count++) 
     ^
StringDown.java:16: cannot find symbol 
symbol : variable count 
location: class StringDown 
    for (count=0; length<count; count++) 
         ^
StringDown.java:16: cannot find symbol 
symbol : variable count 
location: class StringDown 
    for (count=0; length<count; count++) 
           ^
StringDown.java:18: cannot find symbol 
symbol : variable count 
location: class StringDown 
     System.out.print(userInput.charAt(count)); 
             ^
4 errors 
Compilation failed. 

ответ

1

StackTrace говорит вам, где существует ошибка. Переменные должны быть объявлены ключевыми словами типа, прежде чем их можно будет использовать. Добавьте int ключевое слово, так что переменная count может использоваться в цикле

for (int count = 0; length < count; count++) { 
    ^
1

Ваш цикл

for (count = 0; length < count; count++) { 

Это должно быть

for (int count = 0; length < count; count++) { 

указал, что граф является int типа.

В качестве примечания стороны: переход на IDE как можно скорее. Чтобы вы могли больше сконцентрироваться на своей логике, вместо того, чтобы в конечном итоге сталкиваться с этими типами ошибок компиляции

+0

@xmoex Лучшая вещь это бесплатно :) –

+0

Так же Netbeans и IntelliJ Community Edition; неважно, какая IDE. Независимо от того, является ли IDE хорошей идеей для новичков, это другое обсуждение. –

0

Объявление об ошибке как int отсутствует, ниже - правильный код.

for (int count=0; length<count; count++) 
+1

Правильно, но немного позади. –

2
for (count=0; length<count; count++) 

В дополнение к другим ответам рекомендующих int count=0;, я думаю, вы, вероятно, есть логическая проблема. Предполагая, что вы исправить то, что другие указали, и сделать это:

for(int count=0; length<count; count++) 

Вы только изменения размера count. Вы никогда не изменяете размер length. И ваш чек - length<count, и вы изменяете count с ++. Это означает, что произойдет одно из двух.

  1. Когда length >= 0, вы никогда не войти в тело цикла for.
  2. Когда length < 0, вы войдете в бесконечный цикл, где length<count всегда будет возвращать true.

(А учитывая, что вы устанавливаете length, проверяя длину String, вы всегда получите первый сценарий в этом конкретном примере.)

+1

+1 для указания логической ошибки, хотя, как написано, длина не может быть <0. –

Смежные вопросы