找不到符号编译错误

时间:2013-10-24 14:41:37

标签: java

我认为我格式化了错误或存在逻辑错误,说实话我不知道。我在程序的底部评论了错误。非常感谢所有帮助。

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.

4 个答案:

答案 0 :(得分: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
  3. (鉴于您通过检查length的长度来设置String,您将始终获得此特定示例中的第一个场景。)

答案 1 :(得分:1)

stacktrace告诉你错误存在的位置。在使用变量之前,需要使用类型关键字声明变量。添加int关键字,以便可以在循环中使用变量count

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

答案 2 :(得分:1)

你的for循环

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

那应该是

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

告知该计数属于int类型。

作为旁注:尽快转移到IDE。这样你就可以更专注于你的逻辑,而不是最终得到这些类型的编译错误

答案 3 :(得分:0)

缺少计数声明为int,下面是正确的代码。

 for (int count=0; length<count; count++)
相关问题