Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';我的程序不能运行java中的循环吗?_Java_Loops_For Loop - Fatal编程技术网

为什么赢了';我的程序不能运行java中的循环吗?

为什么赢了';我的程序不能运行java中的循环吗?,java,loops,for-loop,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; in

我这里的问题是,我希望它能打印出列出的所有四个城市,但它只能打印多伦多

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]);
    }
  }
}
公共类测试
{
公共静态void main(字符串[]args)
{
字符串[]允许=新字符串[]{“纽约”、“新加坡”、“巴黎”、“多伦多”};
整数指数;
对于(索引=0;索引

如果在allowed.length之后没有使用“-1”来运行它,则会出现越界错误。我也试着把它转换成一个while循环,但仍然没有成功。关于我的循环,我遗漏了什么?

删除额外的

for(index=0; index < allowed.length - 1; index++)
                                                 ^
                                                 |
                                                 removed `;`
{
  System.out.println(allowed[index]);
}
for(index=0;index
否则,循环的正文将为空。

删除分号

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

这将终止for循环。下面的代码块是一个独立的块,只执行一次,分号终止循环体;然后你有一个匿名区块。删除分号。你的测试应该是这样的

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

其他人已经回答了你做错了什么。你还问了你遗漏了什么,所以让我补充一下

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

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

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

您在for循环后面的分号处结束了循环。按照建议把它取下来。哦,天哪,我怎么会错过呢。非常感谢你!
for(int index=0; index < allowed.length - 1; index++) {
  //...
}