目录
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
请按任意键继续. . .