for()的一个小问题

脱轨的码农996 2012-03-19 08:37:14
比如for(;i<10;i++)
第一个分号前的值为什么能够为空
...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
luffy1010 2012-03-20
  • 打赏
  • 举报
回复
for(初始化表达式;循环条件表达式;循环后的操作)

执行语句;

第一个分号前,是初始化表达式,可以不写,只要for循环前面定义了一个变量,并且还有初始化值。
循环表达式一定要写,没有条件表达式,for循环也就没有意义。
循环后的操作,也可不写。想i++,可以写到执行语句后面。
int i=0;
for(;i<10;)
{
System.out.println("i="+i);
i++;
}
这也能运行。
horsttnann 2012-03-20
  • 打赏
  • 举报
回复
第一个分号前的表达式是“初始化变量的作用”。
菖蒲老先生 2012-03-20
  • 打赏
  • 举报
回复
还可以这样呢。。。。

for (;;) {}
逛街的猫 2012-03-20
  • 打赏
  • 举报
回复
int i=0;
for(;i<?;i++){};
这样就可以了!!
nmyangym 2012-03-19
  • 打赏
  • 举报
回复
在for()所在的方法里,i已经被定义并初始化了。
如果没有定义,就不能为空。

另外,象这样的循环,也可以为空:
for(;;);
zhgq2134 2012-03-19
  • 打赏
  • 举报
回复
for(a;b;c){
}三个值都能为空但是在for前必须定义a
在for语句里面必须定义b 和c

就是说可以在for()里省略,但其他地方一定要有定义或限制
最好不要这样写
我也初学 共同进步
weisuonangd 2012-03-19
  • 打赏
  • 举报
回复
因为i前面已经定义了,在内存里面已经有值了,然后编程语言的设计者们编写for规则的时候就认为i是可以为空的,于是就能够为空了(这个《编译原理》应该是有说明的)

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧