如何分清分C语言从关于支结构和循环的使用?
在C语言中, 分支结构有好多种,什么,if、if-else、if-else-if,加上switch、break什么的弄的好乱,求大神帮忙理清下思路。
还有,循环结构,while、do-while、for、break、continue、goto,我感觉这一章特别难,直接打击学习的积极性了
,尤其当嵌套的时候,逻辑思路特别乱,看程序流程图有一种想一觉睡去以谢天下的感觉
。求大神帮忙讲一下如何分清这些语句的用法,和技巧。
现在老师给我们的关于分支和循环例题自己做总是做不出来,可是只要一看程序,却能读懂,自己课下也下功夫了,实在是不行了,请大家帮下忙,谢谢啦。
,尤其当嵌套的时候,逻辑思路特别乱,看程序流程图有一种想一觉睡去以谢天下的感觉
。求大神帮忙讲一下如何分清这些语句的用法,和技巧。
现在老师给我们的关于分支和循环例题自己做总是做不出来,可是只要一看程序,却能读懂,自己课下也下功夫了,实在是不行了,请大家帮下忙,谢谢啦。
[解决办法]
貌似lz没有投入足够的精力进去哦,好像兴趣也有待培养的样子……
[解决办法]
不要使用
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;
//...
}
类似的例子还可以举很多。
[解决办法]
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试是程序员必须掌握的技能之一。