C语言循环方式

目录

1.while循环

2.do_while循环

3.for循环

for循环嵌套

4.循环退出方式

用break提前结束循环

用contine提前结束本次循环


1.while循环

格式:

while(表达式)

{语句;} /*循环体*/
理解:当表达式为非 0(真)时,就重复执行循环体内的语句;当表达式为 0(假),则中止
while 循环

场景:爱你一万年(真的吗?)

#include <stdio.h>

int main()
{
	/*写法一:用break退出
	int i;
	
	while(1){
		puts("爱你一万年");
		i++;
		if(i==100){
			break;
		}
	}*/
	
	int time = 100;//一万年太久,只挣朝夕
	
	//写法二:time 一直为真会一直执行,当time--到0为假,退出循环(good)
	while(time){
		puts("爱你一万年");
		time--;
	}
	system("pause");
	return 0;
}

结果:输出100次爱你一万年

应用:1到100的和

#include <stdio.h>

int main()
{
	int sum = 0;
	int data = 1;
	
	while(data <= 100){
		printf("data = %d\n",data); 
		sum += data;
		data++;
	}
	printf("0到100sum=%d",sum);
	system("pause");
	return 0;
}

 这让我想到数学王子高斯的错位相减法计算1到100的和。NB

0到100sum=5050
请按任意键继续. . .

2.do_while循环

格式:
do
{语句;}
/*循环体*/
while(表达式);
理解:
先执行循环体中的语句,后判断表达式。如表达式成立(真), 则再执行循环体,然后又判断,直到有表达式不成立(假)时,退出循环,执行do while 结构的下一条语句。do while 语句在执行时,循环体内的语句至少 会被执行一次。
#include <stdio.h>

int main()
{
	int data = 3;
	/*while(data != 0){
		printf("this is a test\n");
		data--;
	}
	*/
	
	do{
		printf("this is a test\n");
		data--;
	}while(data != 0);
	return 0;
}
this is a test
this is a test
this is a test
请按任意键继续. . .

3.for循环

格式:

for(表达式 1;表达式 2;表达式 3)
{语句;} /*循环体*/
本质和while循环一样
#include <stdio.h>

int main()
{
	int i;
	//条件赋初值  判断临界值  条件改变
	for(i=0;i<3;i++){
		puts("你是有多厉害???");
	}
	system("pause");
	return 0;
}
你是有多厉害???
你是有多厉害???
你是有多厉害???
请按任意键继续. . .
//自嘲罢了

for循环嵌套

场景:1.后面的二维数组的遍历 (下面是矩阵输出)

#include <stdio.h>

int main()
{
	int i;
	int j;
	
	
	for(i=1;i<=4;i++){
		for(j=1;j<=5;j++){
			printf("%d  ",i*j);
		}
		putchar('\n');
	}
	return 0;
}
1  2  3  4  5
2  4  6  8  10
3  6  9  12  15
4  8  12  16  20

4.循环退出方式

用break提前结束循环

#include <stdio.h>

int main()
{
	int personNum;
	int moneyTotol = 0;
	int momey;
	
	for(personNum=1;personNum<=1000;personNum++){
		printf("请输入捐款的数目:(tips:需要1000000)\n");
		scanf("%d",&momey);
		moneyTotol = moneyTotol + momey;
		if(moneyTotol >= 1000000){
			puts("momney 已到达100万元");
			break;
		}
        puts("好像还不够");
	}
	
	printf("总捐款人数是%d\n",personNum);
	printf("每个人的平均捐款数:%f\n",(float)moneyTotol/personNum);
	system("pause");
	return 0;
}
请输入捐款的数目:(tips:需要1000000)
65987
好像还不够
请输入捐款的数目:(tips:需要1000000)
63254
好像还不够
请输入捐款的数目:(tips:需要1000000)
98754
好像还不够
请输入捐款的数目:(tips:需要1000000)
32154
好像还不够
请输入捐款的数目:(tips:需要1000000)
96328
好像还不够
请输入捐款的数目:(tips:需要1000000)
3214569
momney 已到达100万元
总捐款人数是6
每个人的平均捐款数:595174.333333
请按任意键继续. . .

用contine提前结束本次循环

#include <stdio.h>

int main()
{
	int data;
	
	for(data=100;data<=200;data++){    //寻找100到200能整除3的数
		if(data%3 != 0){    //%取余运算符
			continue;
		}else{
			printf("%d  ",data);
		}
	}
	putchar('\n');
	system("pause");
	return 0;
}
02  105  108  111  114  117  120  123  126  129  132  135  138  141  144  147  150  153  156  159  162  165  168  171  174  177  180  183  186  189  192  195  198
请按任意键继续. . .
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值