for 循环的语法问题。。。 int k=0;for(;;){System.out.println(k++);}这是什么写法?为什么会执行for循环中的代码?为什么这个for循环是个死循环? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for循环中没设置任何条件,所以永远为真 这种情况,最好在循环中增加一个判断,然后break出来 这个就相当于while(true){System.out.println(k++);}了死循环 需要写条件跳出循环 这个for循环式最省略的一种写法了;在这个for循环中,第一句默认定义了k=0;中间的判断语句默认为k<=无穷大;因为循环语句中存在k++,所以就省略了第三个条件了。这样的循环回形成无限循环,因为k是无穷大的.... C里比较常见和习惯的死循环写法,可以在里面写循环执行的代码,如果想退出,在退出的地方加一句break;就可以了 下面是for 循环的通用格式:for(initialization; condition; iteration) {// body}for循环的执行过程如下。第一步,当循环启动时,先执行其初始化部分。通常,这是设置循环控制变量值的一个表达式,作为控制循环的计数器。重要的是你要理解初始化表达式仅被执行一次。下一步,计算条件condition 的值。条件condition 必须是布尔表达式。它通常将循环控制变量与目标值相比较。如果这个表达式为真,则执行循环体;如果为假,则循环终止。再下一步执行循环体的反复部分。这部分通常是增加或减少循环控制变量的一个表达式。接下来重复循环,首先计算条件表达式的值,然后执行循环体,接着执行反复表达式。这个过程不断重复直到控制表达式变为假。for( ; ; ) {// ...}这个循环将始终运行,因为没有使它终止的条件。 int k=0; for(;;){ System.out.println(k++); } 就好比int k=1;whele(k!0){ System.out.println(k++); } for(;;)第一个参数是初始化条件,第二个是结束条件,第三个是每次循环操作。你没有结束条件,自然就是死循环了。 没加入条件int k=0; for(;;){ System.out.println(k++); if(k == 10)break;} 这样就 ok 或者for(;k <= 10; k++) { // do some work}也可以 int k=0; for(;;){ //条件没写 等同于无约束System.out.println(k++); } 是一个死循环 好像FOR里面不能用BREAK;吧!JAVA里面可以用? 不奇怪 还一种 for each 挺好玩.. for(;;)第一个参数是初始化条件,第二个是结束条件,第三个是每次循环操作。 你没有结束条件,自然就是死循环了。 for(initialization; condition; iteration) {// body} condition 为空 以为真,故无限循环 循环分为三种:有限次数的循环;不确定次数循环;死循环。有限次数的循环就不介绍了不确定次数的循环:(这个比较有用)for(int i=0;;i++){ if(...) break; ...}死循环:只要没有循环终止条件的都是死循环,就不介绍了。 谢谢,大家的积极讨论相信有很多的人之前也不是很清楚。看了上面的回答,我有一个疑问:就是为什么所有人都认为这个是死循环,那我要问了,没有地方指明这是个死循环啊,for(;;)我可不可以认为是while(false)呢?清楼下的解释一下 while(false)是一次都不会运行的。是“死”的,不能循环的。for(;;)认为是死循环就是永远运行下去直到java进程死掉才会结束。相当与while(true)因为for循环的俩";"之间空的。所以这个条件永远都满足。也就成为死循环了。如果for(;false;)才可以认为是while(false) 刚学的时候,也遇到过。很经典,又复习了一次for循环。 呵呵,回答的人好多啊。 我今天把true 记成ture 想死循环都循不了。 最近没时间上啊今天就要给客户纳品了。。该死的linux却瘫痪了郁闷死我了怎么办啊。重装好费时间的。 for == four == 4 == ... 好像不对吧?int 的最大值是2^31-1的,当k达到这个值时,for循环还会继续走吗?应该会报错的吧? 刚才用 short测试了一下,发现了,原来是k++按位运算做的,达到Short.MAX_VAlUE后,再+1,就用-32768开始循环了,程序最终会死循环!我想int应该也会是一样的!不做不知道,另有蹊跷! for(赋值;条件;条件累加)for(int i = 0;i<50;i++){ //到了49的时候就会跳出循环}如果 for(;;) 条件若不填写 那么默认条件是true 条件永远满足!for(int i = 0;;i++)也是一样哦 顶分哦!! 噢耶 第一次回帖 k++ 等价于k = k+1; Java HttpURLConnection获取HTML不完整 多线程socket数组对象,直接被NEW重写是否可行? 每日一题 求教java软件工程师的职责 POI读取Excel表时如果表中有空白字段 就会产生错误问题(急 回答马上就给分) 询问IOStream里的小问题 转换成/ 送分!谁能解释一下?! weblogic反应这么迟钝!!! 急需求助高手 read()读到-1为什么可以判断文件尾,Byte小于零的是什么? 一个应该很简单的输出问题求解
死循环 需要写条件跳出循环
在这个for循环中,第一句默认定义了k=0;中间的判断语句默认为k<=无穷大;因为循环语句中存在k++,所以就省略了第三个条件了。这样的循环回形成无限循环,因为k是无穷大的....
// body
}
for循环的执行过程如下。第一步,当循环启动时,先执行其初始化部分。通常,这是设置循环控制变量值的一个表达式,作为控制循环的计数器。重要的是你要理解初始化表达式仅被执行一次。下一步,计算条件condition 的值。条件condition 必须是布尔表达式。它通常将循环控制变量与目标值相比较。如果这个表达式为真,则执行循环体;如果为假,则循环终止。再下一步执行循环体的反复部分。这部分通常是增加或减少循环控制变量的一个表达式。接下来重复循环,首先计算条件表达式的值,然后执行循环体,接着执行反复表达式。这个过程不断重复直到控制表达式变为假。for( ; ; ) {
// ...
}这个循环将始终运行,因为没有使它终止的条件。
for(;;){
System.out.println(k++); } 就好比
int k=1;
whele(k!0){
System.out.println(k++);
}
你没有结束条件,自然就是死循环了。
for(;;){ System.out.println(k++);
if(k == 10)break;
} 这样就 ok
for(;k <= 10; k++) {
// do some work
}也可以
int k=0;
for(;;){ //条件没写 等同于无约束
System.out.println(k++); }
是一个死循环
你没有结束条件,自然就是死循环了。
// body
}
condition 为空 以为真,故无限循环
有限次数的循环就不介绍了
不确定次数的循环:(这个比较有用)
for(int i=0;;i++)
{
if(...) break;
...
}死循环:
只要没有循环终止条件的都是死循环,就不介绍了。
相信有很多的人之前也不是很清楚。看了上面的回答,我有一个疑问:
就是为什么所有人都认为这个是死循环,那我要问了,没有地方指明这是个死循环啊,
for(;;)我可不可以认为是while(false)呢?
清楼下的解释一下
for(;;)认为是死循环就是永远运行下去直到java进程死掉才会结束。相当与while(true)
因为for循环的俩";"之间空的。所以这个条件永远都满足。也就成为死循环了。
如果for(;false;)才可以认为是while(false)
今天就要给客户纳品了。。
该死的linux却瘫痪了郁闷死我了
怎么办啊。重装好费时间的。
for(int i = 0;i<50;i++){
//到了49的时候就会跳出循环
}
如果
for(;;)
条件若不填写 那么默认条件是true
条件永远满足!
for(int i = 0;;i++)
也是一样哦
顶分哦!! 噢耶
第一次回帖
等价于
k = k+1;