我的问题在于我希望它能够打印列出的所有四个城市,但它只打印多伦多。
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循环,但仍然没有运气。关于我的循环,我错过了什么?
答案 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循环。以下代码块是一个独立的块,只执行一次