为什么C语言的for语句要加分号?
发布网友
发布时间:2023-10-16 02:51
我来回答
共1个回答
热心网友
时间:2024-10-08 02:29
C语言中分号作为语句结束的标志是比不可少的,for语句后面的代码从整体上分析,此时每一条语句必定带分号,缺乏分号将导致语法错误。而如果for语句后面的代码构成代码体,则不需要再代码体结束时加上分号。
for语句有两种用法,一种是跟单语句,一种是跟代码体。
1、单语句循环
以上5个for循环均实现了5条语句的5次循环。由于for循环均使用单语句循环,循环直接相互独立,没有嵌套结构。
但对于后3个循环,使用了逗号表达式作为一条语句,C语言的语句是必须以分号结束的且此处仅使用逗号表达式构成语句,并没有构成代码体,故此处仍需要使用分号。
2、代码体循环
代码体循环实现了多条语句循环,代码体可以是单语句、多语句和循环结构等。代码体循环结构将多条语句看成一个整体进行循环,每一条语句均需要分号进行结尾。
而代码体以花括号作为边界,并不是语句,故此处不需要再使用分号。
综上for语句后根据循环结构内容选择是否添加分号。如果为语句,必须以分号结尾;如果是由完整语句构成的代码体,则必须使用花括号,此时可以不添加分号结尾。
扩展资料
需要注意的是,由于C语言的语句均以分号结尾且C语言存在空语句,故使用for语句时需要避免再完成for(;;)的结构后直接使用分号再编写循环代码的情况(如下图所示)——此时的循环结构为空语句。
因此使用C语言需要养成良好的编程习惯,合理使用代码体并规划程序结构以提高开发效率。
为什么C语言的for语句要加分号?
C语言中分号作为语句结束的标志是比不可少的,for语句后面的代码从整体上分析,此时每一条语句必定带分号,缺乏分号将导致语法错误。而如果for语句后面的代码构成代码体,则不需要再代码体结束时加上分号。for语句有两种用法,一种是跟单语句,一种是跟代码体。1、单语句循环 以上5个for循环均实现了5条...
C语言中 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语句的后面加分号和不加分号有何不同?
for循环后面加分号,表示这个循环是空语句,除了执行for()括号里的,什么都不干。然后就执行下一行,也就是你的prinf,printf和for循环没关系。如果不加分号,那for循环后面的printf语句就是for循环的一部分,跟着for一起执行,但前提是for循环里的条件要满足。执行到第二个for时a已经等于3了,你要b=...
c语言中的for(;i<count;i++)括号内的第一个分号起什么作用?
for里面通常是由两个分号,第一个分号前面循环启动时的初始化内容,第二个分号前面是循环结束的条件,第二个分号后是在循环过程中要做的事情。如果这三个部分有一个或几个没有,可以不写。所以,你所说的第一个分号是必须的,这是for循环体的固有结构决定的,它的前面没有内容,说明循环启动时没有...
请问c语言中for循环后面加上分号和不加分号有什么区别吗?
加上分号,for循环就变成了空循环,一直循环,不输出任何东西,直到不满足循环条件,退出循环,才执行下一条语句。
c++中for(; ;)表示什么意思
for(; ;)是for循环语句。for语句的语法规定,括号里面一定要有两个分号,分开三个句子。第一个句子是初始化用的,如果没有初始化的必要,就视为空语句,加上分号。第二个句子作为判断条件,如果没有判断条件,也视为空语句,后加一个分号。这种情况,会无限循环,相当于while(1)。如果for的执行部分...
在C语言中,for语句的后面加分号和不加分号有何不同?
for语句有两种用法,一种是跟单个语句,一种是跟代码体。在跟单个语句时,由于在C语言语句默认是以分号结尾的,程序会将for (;;)之后直到第一个分号的代码视为循环体来执行,例如下面三种情况:for (int i=0; i<10; i++) foo1();for (int i=0; i<10; i++) foo1();for (int i...
C语言for语句加{}和不加{}有什么区别?
你好,很高兴为你答疑。为了程序的易读,一般是提倡加括号的,那样for函数执行的主体清晰明了。不加括号的时候,默认该for函数执行的是紧跟其后的1函数或语句。比如:for(;;){ for(;;){ } } 这里面外层的for不佳括号也可以的。但是如下:for(;;){ for(;;){ } printf("");} 这样的话外层...
C语言,for(;i<=p;i++,j--),这句话怎么个逻辑,第一个分号,最后一个逗号...
for循环里面有两个分号,第一个前面是初始化,可以为空,但是分号不能省,执行完循环体就会执行第二个分号后面的内容,有逗号会按照顺序依次执行