但经过编译器的精心优化以后,while(1)也会被优化成无条件跳转(jmp指令),所以跟for(;;)没什么区别。有人表示,for(;;)在英语母语者那里很容易跟forever挂钩。网友解析,也很有可能是习惯问题,其实while(1),还是for(;;)两个语法上有啥区别,那就是for(;;) 明确就是循环,等价于goto一直跳,没有比较条件。while...
用while构造死循环时,一般会使用while(TRUE)来构造死循环;而用for来构造死循环时,则使用for(;;)来构造死循环。这两个死循环的区别是:while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件如PC-Lint就会认为出错了,因此构造死循...
C语言中死循环有两种常见方式: // 循环方式1 for(;;) { //执行语句 } // 循环方式2 while(1) { //执行语句 } 区别: for(;;)中的;;代表两个空语句,编译器会在编译时将其优化,直接进入循环;而while(1)存在一个判断语句--即是否为1,效率上稍逊于前者...
2.不同点 while(1):其中括号里面是一个条件,程序会判断真假。而括号里面的“1”永远是一个“真值”。 其中,每一次循环,编译器都要判断常量1是不是等于零。 for(;;):这两个;;空语句,编译器一般会优化掉的,直接进入死循环。 根据上面的描述,你可能会觉得:while(1) 比 for(;;) 要做更多事,汇编代码更多...
我个人认为任何条件下,死循环都不应当用while(1),而应当用for循环,事实上很多人正是这么做的。当然...
一般for(;;)性能更优 for(;;){} 这两个;; 空语句,编译器一般会优掉的,直接进入死循环 while(1){} 每循环一次都要判断常量1是不是等于零,在这里while比for多做了这点事 不过从汇编的角度来说,都是一样的代码。
while(day = !0) 条件写成 赋值了。 while ( day == !0) 天数等于非0 while( day != 0) 天数不等于0 if(day=1&&a==1) 条件day 写成 赋值了, if(day==1&&a==1) 才是条件。=== 程序逻辑设计有问题。总数可以直接倒算就有了。t=1; for (i=1;i<day;i++) ...
这是习惯问题,其实 while(1),还是for(;;) 两个语法上有啥区别,那就是…for(;;) 明确就是循环...
while循环和for循环是编程中两种常见的循环结构,虽然都是用来重复执行一段代码,但它们之间也有一些区别。1. 语法结构不同 for循环的语法结构如下:for (初始化表达式; 判断条件表达式; 更新表达式) { // 循环执行的代码语句} while循环的语法结构如下:while (判断条件表达式) { // 循环执行的...