下面这些错误如果你不能一眼看出来,那么就需要非常注意这些细节了。这些错误虽然都很小,但是经常能让一个初学者郁闷好几天。我们将分析这些错误并给出避免出错的建议。 错误1
#include int i; for (i=1;i<=200;i++) if(i%7==0) ; printf(\"%3d\} 程序编写者的本意是打印所有能被7整除的数,但是每次运行的时候只会打印一个0,为啥呢?你看出来了吗??????????????????????if语言后多了分号! 这位同学本来是想在(i%7==0)等于true的时候执行printf语句的,但是分号是一段代码的终止标志,所以if只会执行空的代码体,所以 if(i%7==0) ; printf(\"%3d\ 相当于: if(i%7==0) { }; printf(\"%3d\ 可以看到printf根本没有被包含到if的大括号中。正确的代码应该是: #include int i; for (i=1;i<=200;i++) if(i%7==0) printf(\"%3d\} 杨中科老师的建议是哪怕只有一行代码,也要使用大括号,所以更好的代码是: #include int i; for (i=1;i<=200;i++) { if(i%7==0) { printf(\"%3d\ } } } 错误2 #include int main(int argc, char *argv[]) { int i=333; if(i%2==0) { printf(\"偶数\"); }; else { printf(\"奇数\"); } return 0; } 上面的代码编译的时候会报下面的错误: error: syntax error before \"else\" 在if语句中,如果有else子句,则在if后不应该使用分号。正确的代码应该是: #include int main(int argc, char *argv[]) { int i=333; if(i%2==0) { printf(\"偶数\"); } else { printf(\"奇数\"); } return 0; } 总结:分号的问题是犯错率最高的一个错误。C语言的初学者最容易迷糊的就是不知道什么地方该用分号,什么地方不应该放分号。原则就是:完整的语义之后才放分号。比如对于: if(i%7==0) printf(\"%3d\ if语句表示“如果。。。那么。。。”,“如果。。。那么。。。”就是一个完整的语义,因此在if后不能添加分号。 同样对于: if(i%2==0) { printf(\"偶数\"); } else { printf(\"奇数\"); } if。。。else。。。语句表示“如果。。。那么。。。否则”,“如果。。。那么。。。否则”就是一个完整的语义,因此在else之前不能添加分号。 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务