关于for循环语句后的分号问题

作者&投稿:乌娴 (若有异议请与网页底部的电邮联系)
求教for循环语句后加分号的问题~

什么问题?

这里用分号的就去循环,但是什么也不做,第一个for的作用是求得满足条件的 i 的最终值,第二个是求得满足条件 e 的最终值

for(表达式1;表达式2;表达式3) 语句

执行过程如下:
1) 先求解表达式1。
2) 求解表达式2,若其值为真,则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假,则结束循环,转到第5)步。
3) 求解表达式3。
4) 转回上面第2)步继续执行。
5) 循环结束,执行for语句下面的一个语句。

有分号时就是没有循环体时,等于是直接跳到3)步,去求表达式3了,也就是表达式3成为循环体,等价于
for(i=count; i >=1 ;i--)
sum=sum+i;
此后printf打出的是它执行完时sum的终值.

而没分号时循环体为printf语句,也就是说第一次并不是求表达式3,而是先去执行printf了,----这就是为什么第一次打出的sum总为0!!!也就是printf先于sum += i--执行了.

总之,两种情况下,sum += i--语句执行次数是一样的,但在没分号情况下,因printf要比它早执行一次,因而最后sum终值没有被打出来而已.

这是因为如果加了分号,那么最后一次是I=0,显然此时不满足i>=1因此循环体printf("\nTotal of the first %d number is %ld;\ni=%d.\n",count,sum,i)不执行,但是实际上SUM的值仍然是正确的,可以在程序最后加一句PRINTF语句以验证,关于FOR语句的更多资料请查阅自己的C语言教材。

楼上两个说的都是对的.
有没有分号都会加到1. 只是当i=1时进入循环体,这时printf语句执行的是加到2的结果,printf语句执行之后才会执行sum+=i--,然后sum才加到1了,这时i=0,不会再执行printf语句显示加到1的结果.
如楼上所说,你可以再加一条printf语句查看最后结果.

不是的,不管时候有分号,都会加到1的.
执行流程是先判断是否i>=1然后sum += i--,也就是说在i=1的时候还要进入循环体内执行一次."sum += i--"就是循环体


for循环是先执行循环体语句,后判断表达式吗?
or循环中的变量可以是一个也可以是多个,不要局限于一个变量处理到底,那样有时会很单调,当程序适合把多个变量组成循环时,用多个for语句来表示就是有些浪费了。for循环执行时,会先判断条件表达式是否成立,如果条件成立则执行中间循环体,执行完中间循环体后接着执行末尾循环体。在执行完末尾循环体后对...

for循环后不加括号不就是只执行后面一条语句吗?
因为for后面其实只是相当于跟了个if语句,其他行其实是if带来的结果。所以本质上可以看成一条语句

请帮我解释一下for语句后面怎么个循环过程,x++是什么意思?
x的初始值为1,循环条件是x<3,符合,执行下面那行语句,执行完之后执行x++,即x=x+1,此时x变为2,依然符合x<3的条件,再次执行下面那条语句,然后再次x=x+1,此时x变为3,不符合x<3的条件,跳出循环

“for循环是先执行循环体语句,后判断表达式”为什么不对?
for循环是先判断条件再执行。1、语句最简形式为:for( ; ; )2、一般形式为:for(单次表达式;条件表达式;末尾循环体){ 中间循环体;} 其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。

for循环的第一个赋值语句,只有在第一次循环时执行,后面的循环不再执行...
举例说明:for(int i=0;i<10;i++)a[i]=i;执行顺序如下:1 int i=0;只执行一次。2 比较i<10是否成立,若不成立,结束循环。3 执行a[i]=i;4 执行i++,转2。

执行语句“for(i=1;i++<4;);”后,变量i的值是?为什么不是4?为什么i++...
for语句最后有分号,一直执行i循环,直到不满足循环条件。i++<4,i++是执行语句之后i自增1,即将i与4比较,比较之后自增1 i=1<4,i自增1,i=2 i=2<4,i自增1,i=3 i=3<4,i自增1,i=4 i=4,不满足i<4的条件,结束循环,i自增1,i=5 因此执行语句后,变量i的值是5 本题的...

这题为什么for循环后不用加花括号?加了花括号是错的!!求解!!!_百度知 ...
因为你的for语句一开始没有加大括号

循环语句for(i=1;i<=10;i++),循环语句执行完后,i的值是
(A) 11 不循环了 也就是说变量i的值不满足条件i<=10,所以i为11

javascript中的for(;;)后面的括号中的符号是什么意思?
括号中的符号是分号,起到分开循环条件的作用。如 for(i=0;i<=10;i++) 表示i从0开始,满足i<=10这个条件时循环,每个循环i递增1

C语言 for循环执行步骤
C语言for循环的格式一般如下:for (exp1; exp2; exp3 ) {语句块;} 流程:exp1一般是一个初始值设置,程序先检测exp2的条件是否成立,如果成立则执行for循环语句块,如果不成立,则退出循环,执行完for语句块后,会执行exp3,一般是一个增\/减量的操作。

鄯善县18698838329: 关于for循环语句后的分号问题 -
初承卡洛: for(表达式1;表达式2;表达式3) 语句执行过程如下: 1) 先求解表达式1. 2) 求解表达式2,若其值为真,则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假,则结束循环,转到第5)步. 3) 求解表达式3. 4) 转回...

鄯善县18698838329: 关于for循环语句后的分号问题#include "Stdio.h"int main(void){long sum=0L;int count=0;int i=0;printf("\nplease enter the number of integers you want to ... -
初承卡洛:[答案] for(表达式1;表达式2;表达式3) 语句 执行过程如下: 1) 先求解表达式1. 2) 求解表达式2,若其值为真,则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假,则结束循环,转到第5)步. 3) 求解表达式3. 4) 转回上面第2)...

鄯善县18698838329: 在c语言中,for循环语句后面有的有分号,分号是什么意思?谢谢! -
初承卡洛: 一个单独的分号意味着一条空语句,意思是什么也不做,这是符合语法的. for语句括号后面紧跟分号,一般来说都意味着书写错误,而且常常是很致命的,这种错误审查源代码的时候很难发现.与此类似,if语句的判断条件的括号紧跟分号,也很致命. 如果确实要写一条空语句,建议这样做, 方法1 分号单独占一行,不要跟在括号的后面, 方法2 用一对{}表示空语句.

鄯善县18698838329: 两个FOR语句之间的分号起什么作用?不是FOR语句括号内的分号,而是括号外的分号.例如:for(s1=str1;*s1!='\0';s1++); /*这个语句末尾的分号起什么作用... -
初承卡洛:[答案] 这个分号说明第一个循环中的循环体为空,也就是第一个循环全部结束了s1指向了str1的最后一个元素'\0',其它的操作什么都没有.

鄯善县18698838329: for语句后有没有分号 -
初承卡洛: for 如果有 {} 括着代码,那么 for 那行及 {} 后面无须分号.如果 for 后面只有单条语句,那么那条语句当然要分号.如果 for 的 () 后面直接跟分号,表示没有需要循环执行的语句,一般就是一个无限死循环了,除非有线程或者其他方式修改作为 for 退出判断的变量并令其满足退出 for 循环条件.

鄯善县18698838329: 在循环语句for(;;) 括号里面只有二个分号,什么都没有了,是啥意思呀? -
初承卡洛:[答案] 这个分号说明第一个循环中的循环体为空,也就是第一个循环全部结束了s1指向了str1的最后一个元素'\0',其它的操作什么都没有.

鄯善县18698838329: for语句后有个分号,是怎么运行的,是不是直到不符合for语句的条件才执行下个语句? -
初承卡洛: 问题描述的太不清楚 for循环的内容如果没有用{}括起来 默认 循环 for后面的第一条语句 如 for(int i = 0 ; i< 10; i++) a++; 就是只要符合for循环 就执行 a++

鄯善县18698838329: for的循环体需要用{}大括号括住吗 -
初承卡洛: for循环只能循环执行紧随其后的第一条语句,所以可以执行单一语句(以分号结尾)或者复合语句(以大括号框起来,不加分号). 但有一种情况可以运行多条语句又不加分号,就是用逗号把语句分隔起来

鄯善县18698838329: C语言循环中的;号 -
初承卡洛: 在C语言中,一个语句的结束是以分号为标志的,for (i=0;i<=a;i++ ); { b=b+i; }由于for语句后面加了分号,所以相当于for (i=0;i<=a;i++ );b=b+i;也就是说for语句和大括号中的语句被分开了,b=b+i;这一个语句只执行了一次,前面的for语句做的是空循环,相当于只是让i自增a+1次而已,如果for语句后面不加分号,那么for语句和后面大括号中的内容就是一个整体,即b=b+i;要执行a+1次

鄯善县18698838329: for语句后的分号代表什么,这句for循环语句怎么理解? -
初承卡洛: 这个for循环的功能是查找Node*链表中值为n的结点. 这个for循环看起来是空循环,但是其实主要功能是放在了for的条件判断中实现了,注意中间的cur != NULL && cur->value != n,这里已经实现了判断查找的功能,然后最后的cur=cur->next实现了遍历的功能

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网