不明白它为什么要用for
for里面还可以套if else while吗?
学得真的很乱
3条回答 默认 最新
赵4老师 2023-09-21 18:00关注for (A;B;C) D; //等价于 { A; while (1) { if (!(B)) break; D; C; } }不要使用 while (条件) 更不要使用 while (组合条件) 要使用 while (1) { if (条件1) break; //... if (条件2) continue; //... if (条件3) return; //... } 因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映了程序流的实际情况。 典型如: 下面两段的语义都是当文件未结束时读字符 while (!feof(f)) { a=fgetc(f); //... b=fgetc(f);//可能此时已经feof了! //... } 而这样写就没有问题: while (1) { a=fgetc(f); if (feof(f)) break; //... b=fgetc(f); if (feof(f)) break; //... } 类似的例子还可以举很多。解决 无用评论 打赏 举报