社区
C语言
帖子详情
for实现无限循环的的问题
malu_1982
2008-09-07 10:59:21
for( : : )
{
... ...
}
实现无限循环的时候大家都这么写,但是不知道是什么原理。
请知道这个原理的xdjm解释一下。
...全文
3183
24
打赏
收藏
for实现无限循环的的问题
for( : : ) { ... ... } 实现无限循环的时候大家都这么写,但是不知道是什么原理。 请知道这个原理的xdjm解释一下。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
大牛~Daniel
2008-09-08
打赏
举报
回复
for(语句1;语句2;语句3)
{
.......
循环体
.......
}
语句1是控制变量初始化;
因为语句2是判断循环的条件,
当条件为“真”或表达式的值为“1”时,执行循环体,然后执行语句3,(在为空的时候表示没有判断,即为"真",循环体将不停的执行);
语句3是控制循环变量,通过改变循环变量的值,再加上语句2的判断,可以控制循环次数。
当语句为for(;;),它将因为没有控制条而无限循环下去。
建议LZ要好好看书了咯!
kelvin_2013
2008-09-08
打赏
举报
回复
up
csgdseed
2008-09-08
打赏
举报
回复
用while(1)好像多点
mifeixq
2008-09-08
打赏
举报
回复
for (1;2;3)
就相当于
1
while(2)
{
...
3
}
至于while(1) 和for(;;)
看个人习惯而用吧
小小小黑猫
2008-09-08
打赏
举报
回复
真没注意
cooler36659266
2008-09-08
打赏
举报
回复
学习了,原来没条件的for也可以做死循环,用while(1)还要判断,但貌似还是用while(1)的人多,不知道为什么
Jacky_yu
2008-09-08
打赏
举报
回复
学习了,呵呵
wensheng_zh2007
2008-09-08
打赏
举报
回复
都要“钻”地里了
frank_323
2008-09-08
打赏
举报
回复
[Quote=引用 5 楼 CSYNYK 的回复:]
这么理解吧!
for( ; ; )------无条件循环,不用判断条件
while( 1 )------有条件循环,有条件就要判断条件是否成立,所以多几条指令;对于条件是立即数(常数)的,有些编译器也会优化掉那几条指令!
[/Quote]
stormxs
2008-09-08
打赏
举报
回复
应该是看个人习惯吧
帅得不敢出门
2008-09-08
打赏
举报
回复
If cond-expression is omitted, it is considered true and the for loop will not terminate without a break, return, or goto within statement.
A convenient way to specify an infinite loop using the for statement is:
Copy Code
for( ; ; )
{
// Statements to be executed.
}
imdemon
2008-09-08
打赏
举报
回复
看下VC6编译后的结果,不优化
for( ; ; )
{
}
00401087 |.- EB FE jmp short WIN32C~1.00401087
原地无条件跳转
while(1)
{
}
0040108C |. 0000 add byte ptr ds:[eax],al
0040108E |? 85D2 test edx,edx
00401090 |? 74 02 je short WIN32C~1.00401094
00401092 |?^ EB F5 jmp short WIN32C~1.00401089
00401094
有判断,只不过条件永真
http://www.shubulo.com
richbirdandy
2008-09-08
打赏
举报
回复
[Quote=引用 9 楼 malu_1982 的回复:]
哦 公司入职之后考试的时候考了这个
for( ; ; )中间的那个表达式没有,应该是假吧, 觉得更像while(){... ...}, 但是while()是错的
[/Quote]
神啊 公司还有入职考试 还以为只有入学考试。。。
puzzlesky
2008-09-08
打赏
举报
回复
[Quote=引用 13 楼 blackcat242 的回复:]
真没注意
[/Quote]
heroforyou
2008-09-08
打赏
举报
回复
[Quote=引用 17 楼 PenglueR 的回复:]
for(语句1;语句2;语句3)
{
.......
循环体
.......
}
语句1是控制变量初始化;
因为语句2是判断循环的条件,
当条件为“真”或表达式的值为“1”时,执行循环体,然后执行语句3,(在为空的时候表示没有判断,即为"真",循环体将不停的执行);
语句3是控制循环变量,通过改变循环变量的值,再加上语句2的判断,可以控制循环次数。
当语句为for(;;),它将因为没有控制条而无限循环下去。
建议…
[/Quote]
回答得很明确
malu_1982
2008-09-07
打赏
举报
回复
哦 公司入职之后考试的时候考了这个
for( ; ; )中间的那个表达式没有,应该是假吧, 觉得更像while(){... ...}, 但是while()是错的
pengzhixi
2008-09-07
打赏
举报
回复
没有判断条件那么就为永真咯
lzp765
2008-09-07
打赏
举报
回复
[Quote=引用 5 楼 CSYNYK 的回复:]
这么理解吧!
for( ; ; )------无条件循环,不用判断条件
while( 1 )------有条件循环,有条件就要判断条件是否成立,所以多几条指令;对于条件是立即数(常数)的,有些编译器也会优化掉那几条指令!
[/Quote]
编译器会优化,所以觉得是个人习惯吧.
zhkefa
2008-09-07
打赏
举报
回复
还真没留意过,,
_石头_
2008-09-07
打赏
举报
回复
这么理解吧!
for( ; ; )------无条件循环,不用判断条件
while( 1 )------有条件循环,有条件就要判断条件是否成立,所以多几条指令;对于条件是立即数(常数)的,有些编译器也会优化掉那几条指令!
加载更多回复(4)
c语言
无限循环
的作用,for
无限循环
中变量怎么重新赋值
已结贴√
问题
点数:20回复次数:3 for
无限循环
中变量怎么重新赋值void main(){for(;;){//循环作用一直判断c—调用不同的方法system("cls");float x,y;char con;int c,m;//c控制调用的方法fun1(); /* 调用菜单函数 */printf("输入你想要进行的运算(1~11):" );scanf("%d"...
使用for循环
实现
1到100的和
#include <stdio.h> int main(int argc, const char *argv[]) { int i,sum = 0; for(i = 1;i < 100 ; i++){ sum += i; } printf("sum = %d\n",sum); return 0; }
while循环和for循环
while循环基础步骤,while循环基础格式,while
无限循环
while循环、for循环和while循环区别、do...while循环、
无限循环
和跳转控制语句
System.out.println(“循环执行一直在打印内容”);System.out.println(“循环执行一直在打印内容”);System.out.println(“循环执行一直在打印内容”);while循环:不知道循环的次数和范围,只知道循环结束的条件。for循环:知道循环次数或者范围。特点:先执行,再判断。
判断和循环,
无限循环
;及其练习题(java基础10)
输出语句System.out.prinlb();2.2.2swich简化写法(jdk12新特性)把6.1continue换成brerak。3.3do while循环。质数:只能被1和其本身整除。2.2.1swich语句。3.2swhile循环。5.2for循环快速写。4.2练习求商和余数。
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章