for语句后加分号就是表示执行for中的语句,不执行其他,也就是不带循环体语句
成都创新互联公司从2013年开始,先为花垣等服务建站,花垣等地企业,进行企业商务咨询服务。为花垣企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
int i, j=0;
for(i=0; i5; i++) // 带循环体的for循环
{ // {}括起来的就是循环体语句
j++;
}
for(i=10; i0; i--); // 不带循环体的for循环
// 执行过程如下如下(也就是for后带分号的意思)
// 当i=10时,i0成立,则i=i-1=9;之后当i=9时,i0成立,则i=i-1=8,一直执行下去,当i=0时跳出for循环
首先说下分号吧,其实分号挺简单的,它就表示着一个语句的结束,
就像平时我们语文中说完一句话加上个句号,
C语言中说完一句话后面加上个分号;
比如
printf("hello,world\n");
说完一句话加上个分号告诉计算机你说完这句话了
再来说下逗号,
这就样提到逗号表达式了,
比如
a=(4,6)
这个表达式它的值就是6
,为什么呢?
先看括号里的(4,6)
因为有了逗号存在形成一个逗号表达式,整个表达式的值取的是
逗号后面的值,因此是6
然后把6赋值给a
最终整个表达式的值就是6了
。
在逗号表达式中我认为只要记住了
取值取逗号后边的那个值就可以了。
再拿个经典点的说下
while(i10)
sum+=i;
这一小断程序
当然我初始化sum值为0;
对于它我们可以改写成更简单的
就用逗号实现:
while(sum+=i,i10)
;
这样一句话就实现了,它的过程就是先做WHILE里面的
sum+=i
然后括号内的整体是一个逗号表达式,整个表达式的值取逗号后边的
i10
这样前面的话也做了,最终也达到了我们的目的。
但注意此句话最后边忘了那个分号!
表示语句的结束。
函数是声明的时候不要加{},而是;
而函数定义的时候是{},后面就不需要;了
但是struct就不同了 既需要{},又需要;
如果for括号内只有一个分号,那是语法错误,肯定不能通过编译的,又何来执行。
但如果for括号内有两个分号,这样的for同时省略了表达式1、表达式2、表达式3,是可以通过编译的。且这样的for循环是无限循环,要退出这样的循环,可以用break语句或return语句。
下面举几个例子:
求1到100的累加和
int i=1,s=0;
for(;;)
{
s+=i;
if(i==100)
break;
i++;
}
//用函数求所有输入的非负数的和
int sum()
{
int s=0,t;
for(;;)
{
scanf("%d",t);
if(t0)
return s;
s+=t;
}
}
表示这个循环没有初始化,没有条件判断,没有标志变量的变化
它是一个死循环
这样的循环其循环体内必须有跳出循环的语句,否则就没法正常退出了
调用函数后面当然要加分号
定义函数后面不用加分号,加上分号也没有任何作用