这样用循环很糟糕?
我们老师说三种循环虽然都能相互转化着用,但是各有各的适用地方。
如果你用for(;;)这样来表示死循环,他会骂死你。这里应该用while(1)表示。
今天老师又说 世界上没有哪个程序中必须用死循环,
写出
while(1)
{
if(...) break;
}
这种代码是很糟糕的,说明你的代码逻辑设计本来就有问题。
break只应该出现在switch语句中,在其他地方都应该尽量避免出现。
while(1)也是很糟糕的,while后面的括号中只能接一个判断条件才对,不能用1。
他还说书上的代码是为了向你讲明白一件事,不一定符合软件规范。不要照书上的写。
这次大作业用了死循环,估计分数要拉低了。
我觉得有点夸张了,三种循环的用法有讲究吗?
[解决办法]
死循环是要避免。
平常循环方式,如果你不追求那些效率..你所说那些规范。
自己写,没什么差别。
[解决办法]
貌似效率上有极其细微的差别,死循环还是有很多的实际意义的 比如一个一直运行的系统之类的
[解决办法]
只能说你们老师写的代码太少
[解决办法]
老赵会告诉你就应该用死循环 ,其实都是形式,怎么做都可以
[解决办法]
问的好笼统,只有在学校学习的时候才会纠结与这方面的问题,实际使用看个人习惯,用起来差距不大,而且就我目前看过的代码,用for比较多,可能因为看起来比较好理解,写起来就比较顺手吧。编程是一个很灵活的东西,每个人都会有些小习惯,就像goto,在很多编程书籍里面都建议读者劲量不要使用,说是容易出先无法预知的后果,我想这是作者的一些体会得来的忠告,但实际上我就比较喜欢goto,当然,实际用的也不多。
说这些就是告诉你,写代码其实很灵活,反正把握两点就行,一个是自己写的时候,条理很清晰,二个是,看的人不别扭。当然这些都是我的观点,你也可以参考《高质量C++-C编程指南》,写的很好,很推荐!
[解决办法]
这个要根据应用程序具体分析,我见过不少软件里都有死循环,只是在一定条件下break跳出来。
这是个没有意义的问题,你在决定坐火车还是骑自行车的时候,必须先有目的地,连去哪儿都没有定下来,讨论坐火车还是骑自行车,有意义吗?
[解决办法]
你们老师在扯淡,他收费低,你就凑合听吧,呵呵呵
计算机,会把那些循环都改成一种格式,然后再转成汇编,再到机器码,你说那些写法有区别吗?呵呵呵
[解决办法]
遇到这样的老师就娶了吧,让它在加好好待着。
[解决办法]
无 os 的单片机程序的 main() 中一般都有 while(1)
[解决办法]
嵌入式中main函数中总会有那么一个while(1),你老师要伤心了。
[解决办法]
学校的老师都没有什么软件开发经验,只看了遍教材而已,有几位老师能开发出像模像样的软件,你还指望他能给你经验之谈?
[解决办法]
单开线程经常这样:
while( 1 )
{
dword result = waitforsingleobject();
............................
}
[解决办法]
具体如下:
不要使用
while (条件)
更不要使用
while (组合条件)
要使用
while (1) {
if (条件1) break;
//...
if (条件2) continue;
//...
if (条件3) return;
//...
}
因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映了程序流的实际情况。
典型如:
下面两段的语义都是当文件未结束时读字符
whlie (!feof(f)) {
a=fgetc(f);
//...
b=fgetc(f);//可能此时已经feof了!
//...
}
而这样写就没有问题:
whlie (1) {
a=fgetc(f);
if (feof(f)) break;
//...
b=fgetc(f);
if (feof(f)) break;
//...
}
类似的例子还可以举很多。
[解决办法]
做嵌入式开发的,很多都是用到死循环的。只能说你老师太水了
[解决办法]
for (;;) 还是 while(1), 有什么区别呢?习惯而已。
遇到这样蛋疼的老师,直接转头离开就是了。
[解决办法]
你老师扯淡了。
为了分数,忍忍吧。
自己心中有底就行了。
[解决办法]
你这个老师太扯淡了,只能说明他水平太差,
那单片机中不死循环,搞毛啊
[解决办法]