c语⾔for什么意思,C语⾔中for⽤法是什么?
C语⾔中for⽤法是:
for 循环语句的⼀般形式为:for (表达式1; 表达式2; 表达式3)
{
语句;
}
⾸先要强调两点:
1) 表达式1、表达式2和表达式3之间是⽤分号;隔开的,千万不要写成逗号。
2) for(表达式1;表达式2;表达式3)的后⾯千万不要加分号,很多新⼿都会犯这种错误——会情不⾃禁地在后⾯加分号。
因为 for 循环只能控制到其后的⼀条语句,⽽在C语⾔中分号也是⼀个语句——空语句。所以如果在后⾯加个分号,那么 for 循环就只能控制到这个分号,下⾯⼤括号⾥⾯的语句就不属于for循环了。
下⾯来看看它的执⾏过程:求解表达式1。
求解表达式2。若其值为真,则执⾏for语句中指定的内嵌语句,然后执⾏第3步;若表达式2值为假,则结束循环,转到第5步。
求解表达式3。
转回上⾯第2步继续执⾏。
循环结束,执⾏ for 语句下⾯的语句。
从这个执⾏过程中可以看出,“表达式1”只执⾏⼀次,循环是在“表达式2”“表达式3”和“内嵌语句”之间进⾏的。
for语句最简单的形式是:for (循环变量赋初值; 循环条件; 循环变量增值)
{
语句;
}
下⾯给⼤家写⼀个程序,求 1+2+3+4+…+100 的总和。# include
int main(void)
{
int i;
int sum = 0; //sum的英⽂意思是“总和”
for (i=1; i<=100; ++i) //++是⾃加的意思, ++i相当于i = i + 1
{
sum = sum + i; /*等价于sum += i;但是不建议这么写, 因为sum = sum + i看起来更清楚、更舒服*/
}
printf("sum = %d\n", sum);
return 0;
}
输出结果是:sum = 5050
这个程序的功能是实现求 1+2+3+4+…+100 的和,如果不⽤循环,加⼀次就要⼀条语句,加 100 次就要 100 条语句。这⾥是从 1 加到 100,要是从 1 加到 10000 那就要 10000 条语句。但有了循环就很⽅便了,你想加到多少就加到多少,只要改⼀个参数就可以了。所以循环很重要。
下⾯按照执⾏过程看看上⾯这个程序是怎样执⾏的。
1、⾸先定义⼀个循环变量 i。定义的时候可以不给它赋初值,在 for 循环⾥⾯再给它赋初值也⾏。但前⾯说过,最好在定义变量的时候就对它进⾏初始化,如果值不确定就初始化为 0。所以程序中也可以在定义 i 的时候就给它赋初值,那么 for 循环⾥的“表达式1”就可以省略了,但分号不可以省略。
这样的话,执⾏的时候就跳过第1步,直接进⼊第2步,其他的不变。所以程序也可以像下⾯这样写:# include
int main(void)
{
int i = 1;
int sum = 0;
for (; i<=100; ++i)
{
sum = sum + i;
}
printf("sum = %d\n", sum);
return 0;
}
当然表达式1加上也⾏,⼤不了再重新赋⼀次值。
2、然后定义⼀个⽤来存放“和”的变量 sum,并给它赋初值 0,然后进⼊ for 循环:⾸先求解表达式1,即给变量i赋初值,i=1;表达式1只执⾏这⼀次,下⾯都不会再执⾏了。
然后求解表达式2,若 1<=100 成⽴,则执⾏ for 循环中的内嵌语句,即 sum=0+1。
然后执⾏第3步,变量 i ⾃加 1,即变量 i 由 1 变为 2。
然后再求解表达式2,2<=100 成⽴,则执⾏ for 循环中的内嵌语句,sum=0+1+2。
然后再执⾏第3步,变量 i ⾃加 1,即变量 i 由 2 变为 3。
然后再求解表达式2,即 3<=100 成⽴,则执⾏ for 循环中的内嵌语句,sum=0+1+2+3。
……
就这样⼀直循环下去,直到 ++i 等于 100 的时候,求解表达式2,即 100<=100 成⽴,则执⾏ for 循环中的内嵌语
send for是什么意思句,sum=0+1+2+3+ (100)
然后再执⾏第3步,变量 i ⾃加 1,即变量 i 由 100 变为 101。然后再求解表达式2,即 101<=100 不成⽴,则结束循环,执⾏ for 循环下⾯的语句即 printf。
以上就是这个程序的执⾏过程。关于 for 语句的代码规范化问题,有两点要再跟⼤家强调⼀下:
1)if、else、for、while、do 都只能控制到其后的⼀条语句,如果要控制多条语句必须加⼤括号{}。但基于代码规范化,if、else、for、while、do 后⾯的执⾏语句不论有多少⾏,就算只有⼀⾏也要加{}。
2) 像 if、for、while 等关键字之后应留⼀个空格再跟左括号(,以突出关键字。
此外上⾯的程序还有⼀个知识点要跟⼤家说⼀下:从功能上讲,for(i=1; i<=100;++i)完全可以写成for(i=1; i<101; ++i),⽽且建议⼤家尽量使⽤这种写法。也就是说,循环语句的循环条件尽量写成半开半闭的,不管是 for 循环还是 while 循环。
for(i=1; i<101; ++i)实际上是 1≤i<101,是半开半闭的;⽽for(i=1; i<=100; ++i)实际上是 1≤i≤100,是全闭的。那么为什么建议使⽤半开半闭的呢?因为如果写成 i<=100 的话,那么每次判断的时候都要判断两次,即 i<100 和 i==100,⽽写成 i<101 的话每次只需要判断⼀次。
下⾯再给⼤家写⼀个程序,求 1 到 100 之间所有奇数的和。# include
int main(void)
{
int i;
int sum = 0 ;
for (i=1; i<100; i+=2) //i+=2;等价于i = i + 2;
{
sum = sum + i;
}
printf("sum = %d\n", sum);
return 0;
}
输出结果是:sum = 2500
推荐教程:《C视频教程》
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论