加分号,表示这个循环是空语句,除了执行for()括号里的,什么都不干,然后就执行下一行。
不加分号,那for循环后面的printf语句就是for循环的一部分,跟着for一起执行,但前提是for循环里的条件要满足。
分号代表语句结束。
例如:
for(i=0;i<100;i++);
就等于:
for(i=0;i<100;i++)
{
;
}
注意事项
格式:
for(表达式1;表达式2;表达式3){
//若干语句(循环体)
}
执行规则:
计算表达式1,完成必要的初始化工作;
判断表达式2的值,若表达式2的值为true,则进行3,否则进行4;
执行循环体,然后计算表达式3,以便改变循环条件,进行2;
结束for语句的执行。
C语言中分号作为语句结束的标志是比不可少的,for语句后面的代码从整体上分析,此时每一条语句必定带分号,缺乏分号将导致语法错误。而如果for语句后面的代码构成代码体,则不需要再代码体结束时加上分号。
for语句有两种用法,一种是跟单语句,一种是跟代码体。
1、单语句循环
以上5个for循环均实现了5条语句的5次循环。由于for循环均使用单语句循环,循环直接相互独立,没有嵌套结构。
但对于后3个循环,使用了逗号表达式作为一条语句,C语言的语句是必须以分号结束的且此处仅使用逗号表达式构成语句,并没有构成代码体,故此处仍需要使用分号。
2、代码体循环
代码体循环实现了多条语句循环,代码体可以是单语句、多语句和循环结构等。代码体循环结构将多条语句看成一个整体进行循环,每一条语句均需要分号进行结尾。
而代码体以花括号作为边界,并不是语句,故此处不需要再使用分号。
综上for语句后根据循环结构内容选择是否添加分号。如果为语句,必须以分号结尾;如果是由完整语句构成的代码体,则必须使用花括号,此时可以不添加分号结尾。
扩展资料
需要注意的是,由于C语言的语句均以分号结尾且C语言存在空语句,故使用for语句时需要避免再完成for(;;)的结构后直接使用分号再编写循环代码的情况(如下图所示)——此时的循环结构为空语句。
因此使用C语言需要养成良好的编程习惯,合理使用代码体并规划程序结构以提高开发效率。
本回答被网友采纳for语句有两种用法,一种是跟单个语句,一种是跟代码体。
在跟单个语句时,由于在C语言语句默认是以分号结尾的,程序会将for (;;)之后直到第一个分号的代码视为循环体来执行,例如下面三种情况:
for (int i=0; i<10; i++) foo1();上面三种写法,都是调用foo1()函数10次。在下面一种情况里,程序只会将foo1()函数循环调用10次,而不会将foo2()列入循环中,因为分号for语句在foo2()之前就已经结束了:
for (int i=0; i<10; i++) foo1(); foo2();特别要提的是下面的两种写法,这两种写法的for语句的循环体都为空,程序都不会将foo2()列入循环,因此foo2()只会执行一次。这也是初学者常见的书写错误。
除了跟单个语句外,for语句还可以跟 { } 圈起来的代码体,如下面的例子:
在这种情况下,for语句可以不以分号结尾,程序会将代码体内的所有语句循环10次。
在C语言中,for语句的后面加分号和不加分号有何不同,该分号有什么作用...
加分号,表示这个循环是空语句,除了执行for()括号里的,什么都不干,然后就执行下一行。不加分号,那for循环后面的printf语句就是for循环的一部分,跟着for一起执行,但前提是for循环里的条件要满足。分号代表语句结束。例如:for(i=0;i<100;i++);就等于:for(i=0;i<100;i++){ ;} ...
for语句后面为什么要加分号啊?
for语句后加分号就是表示执行for中的语句,不执行其他,也就是不带循环体语句。for后面跟的是循环体。如果不需要有循环体,也就是for括号里面的三句就可以完成所有功能那么就加个分号,表示循环体为空。比如 :求字符串s的长度for(len=0;s[len]; len++);这个, 单独for里面的三句就完成了所有功...
C语言for括号后加分号什么意思
for语句后加分号就是表示执行for中的语句,不执行其他,也就是不带循环体语句 int i, j=0;for(i=0; i<5; i++) \/\/ 带循环体的for循环{ \/\/ {}括起来的就是循环体语句 j++;}for(i=10; i>0; i--); \/\/ 不带循环体的for循环\/\/ 执行过程如下如下(也就是for后带分号的意...
在C语言中的for语句中加分号与不加分号有啥区别
分号代表语句结束假设你有一个数组int a[5];那么你可以这样给数组赋值for(int i = 0;i
请问c语言中for循环后面加上分号和不加分号有什么区别吗?
加上分号,for循环就变成了空循环,一直循环,不输出任何东西,直到不满足循环条件,退出循环,才执行下一条语句。
C语言for语句加{}和不加{}有什么区别?
你好,很高兴为你答疑。为了程序的易读,一般是提倡加括号的,那样for函数执行的主体清晰明了。不加括号的时候,默认该for函数执行的是紧跟其后的1函数或语句。比如:for(;;){ for(;;){ } } 这里面外层的for不佳括号也可以的。但是如下:for(;;){ for(;;){ } printf("");} 这样的话外层...
for循环后加“;”和不加“;”的区别是什么???
加分号则for后面的大括号执行一次,而且与for里面的条件无关 风雨aaa_8a | 发布于2011-03-20 举报| 评论 0 1 for();:表示这个for循环什么都不做,即for循环到分号处结束,不加分号,执行for下面大括号里面的值 qi爱珍 | 发布于2011-03-18 举报| 评论 3 0 有一坨,就一定要加,要不然执行的只是最...
c++中for循环语句句末加分号与不加的区别
?循环语句后面直接加分号,就是空语句。或者用{ } 括起来的,是语句组,可以不用加 for( ; ; ) a++ ; \/\/这是个循环 for( ; ; ) ; \/\/这也是循环,只不过循环里什么都不做 for( ; ; ) { a++;b++;} \/\/这也是循环,语句都放在 括号里面了 ...
for()语句后面加分号与不加分号结果为什么不同
C\/C++支持空语句的 for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP);相当于for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP) { };而for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP) printf("%3d %6.1f\\n", fahr, (5.0 \/ 9.0)*(fahr ...
matlab中的for语句后加分号,为什么执行仍然没有错误?
没有错误,for函数用end来结束,而不是用分号结束,跟c语言中不同。一般情况下,加分号不显示结果,不加分号,则立即显示结果,如”a=1“和“a=1;”的显示结果是有区别的,前者运行后,在command窗口立即显示结果,而后者不显示,你所给的例子有些特殊,由于“for i=1:3”没有要显示的东西,...