黑马程序猿_C语言之循环结构

循环结构的三种类型:while语句,do while 语句,for语句。

1.while语句

while(条件)
{
循环体
}

比较continue跟break的区别,如:
int  count=0;
while(count<50)
{
	++count;
	if(count%10 == 0)
	{
		continue;
	}
	printf("%d\n",count);
    return 0;
 
}
int  count=0;
while(count<50)
{
	++count;
	if(count%10 == 0)
	{
		break;
	}
	printf("%d\n",count);
    return 0;
}
第一个代码段是count为10的倍数时,就跳出此次循环,即不打印count,进入下一次循环;第二个代码段是count为10的倍数时跳出整个while循环,循环终止,输出结果为1,2,3,4,5,6,7,8,9。
同样的,while条件后不能添加;,循环内部要定义新的变量时一定要使用大括号。

2.do while语句

do
{
循环体

}while(条件);
int main()
{
	int i = 0;
	while(i<0)
	{
		i++;
	}

	/*do{
		i++;
	}while(i<0);*/

	printf("i=%d\n",i);
	return 0;

}

这段代码可以看出while语句跟do while语句的区别:while语句输出的i=0,do while语句输出的i=1。while语句:如果一开始条件不成立,永远不会执行循环体;do while 语句:不管一开始的条件是否成立,至少会执行一次循环体。

3.for语句

for(语句1;条件;语句2)
{
循环体
}
语句1为初始化语句,语句2为增量语句,此语句为执行完循环体再执行。

for循环使用的注意点

1.作用域不明确,for循环里定义新的变量时,循环一定要加大括号。
int main()
{
	for(int i=0;i<5;i++)
           int a =10;

	return 0;
}//编译不通过。

2.for条件后面不要随便加;号
3.循环体里面的变量作用域
int main()
{
	for(int i=0;i<5;i++,a++)//逗号运算符,可连接多个小语句
	{
           int a =10;
	}
	return 0;
}
此代码编译不通过,因为定量a的作用域只限于循环体内,执行完循环体后,a的内存就释放了,导致for条件里面的a没有定义。

4.循环体里面的变量定义
int main()
{
	for(int i=0;i<5;i++)
	{
           int i =10;
           printf("%d\n",i);
	}
	return 0;
}
此语句可以编译成功,输出结果为5次10,因为循环体里面的新变量i,每次循环执行完毕后后释放,不与条件里面的i冲突。
5.变量的作用域比较
int main()
{
	int a =10 ;
	for(int i=0,a=9;i<5;i++)
	{
           a=8;
	   printf("%d\n",a);
	}
	return 0;
}
此段代码里面定义了三个a,但是每个a的作用域不一样,执行语句最先找到a=8,若循环体里没有a=8,则找到a=9,若for条件里面没有a=9,则找到最外层的a=10.

4.for语句与while语句比较

1.死循环
for(;;);
while(1);

2.for循环的变量定义在内部,while循环的变量定义在外部,从内存回收,性能上for循环优于while循环。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值