我想知道为什么我不能在java中使用带有预定义变量的for循环。
我多次尝试用谷歌搜索它,我能找到的只是 for 循环,根本没有初始化变量,基本上人们解释了这是如何可能的: for(;;) 但这只创建了一个 while 循环。
int x = 0;
for (x; x < 5; x++) {
}
Run Code Online (Sandbox Code Playgroud)
上面的代码只是给出了错误消息“不是语句”。它要求我改为写:
int x = 0;
for (int i = x; i < 5; i++) {
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能在 for 循环中使用变量?
正如 Globgett 在评论中指出的那样,你想做的事情可以通过使用来实现
int x = 0;
for (; x < 5; x++) {
}
Run Code Online (Sandbox Code Playgroud)
编译器会抱怨,因为 in for(A; B; C), AandC必须是语句,并且B必须是布尔表达式。Your Ais just x,这是一个表达式,但不是一个陈述。
有关语句和表达式之间差异的更多信息,请参阅此处:What is the Difference Between an expression and a statements in Java?
它与语法本身有关,需要由逗号分隔的三个部分,如果不想初始化,则可以按如下方式声明它
在这里您通知编译器忽略循环中的初始化部分
int x =0;
for(;x<10;x++){
System.out.println(x);
}
Run Code Online (Sandbox Code Playgroud)
您还可以忽略停止条件,在这种情况下,如果不添加停止条件,它将进入无限循环
int x =0;
for(;;x++){
System.out.println(x);
//stoping condition
if(x>9){
break;
}
}
Run Code Online (Sandbox Code Playgroud)
循环的第三部分相同
int x =0;
for(;;){
System.out.println(x);
//stoping condition
if(x>9){
break;
}
x++;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12893 次 |
| 最近记录: |