为什么我的程序不能运行java中的循环?

时间:2014-11-03 16:30:30

标签: java loops for-loop

我的问题在于我希望它能够打印列出的所有四个城市,但它只打印多伦多。

public class Test
{
  public static void main(String[] args)
  {
    String[] allowed = new String[] {"New York", "Singapore", "Paris", "Toronto"};

    int index;
    for(index=0; index < allowed.length - 1; index++);
    {
      System.out.println(allowed[index]);
    }
  }
}

如果我在没有&#34; - 1&#34;在allowed.length之后,我得到一个越界错误。我尝试将它转换为while循环,但仍然没有运气。关于我的循环,我错过了什么?

4 个答案:

答案 0 :(得分:5)

分号终止你的循环体;然后你有一个匿名块。删除分号。你的测试应该是这样的,

for (int index=0; index < allowed.length; index++) // ;

除非您稍后再次需要index。此外,您还可以使用Arrays.toString(Object[])

之类的东西打印没有循环的数组
System.out.println(Arrays.toString(allowed));

答案 1 :(得分:2)

其他人已经回答了你做错了什么。你也问过你错过了什么,所以我也要在那里添加一些东西。

您希望index成为一个应该在循环中使用的变量,而不是其他地方。确保它在循环范围内而不是在其他地方的正确方法是:

for(int index=0; index < allowed.length - 1; index++) {
  //...
}

然后将index的声明放在上面的行中。如果您已经这样做了,那么您会发现分号错误:编译器会告诉您index调用范围内println()不在范围内。

答案 2 :(得分:1)

删除额外的;

for(index=0; index < allowed.length - 1; index++)
                                                 ^
                                                 |
                                                 removed `;`
{
  System.out.println(allowed[index]);
}

否则,你的循环会有一个空体。

答案 3 :(得分:1)

删除半结肠

for (index = 0; index < allowed.length - 1; index++);
                                                    ^

正在终止for循环。以下代码块是一个独立的块,只执行一次