黑马程序员__C语言__循环结构

循环结构

while循环

1.while循环基本使用

 1 int main()
 2 {
 3     int cout = 0;
 4     while(count<=50)
 5     {
 6         ++count;
 7         printf("做第%d次俯卧撑
 count");//(循环体)
 8 
 9     }
10     return 0;
11 }        

使用while 循环的时候,先确定需要重复执行的操作,在确定约束条件。

2.while循环的关键字

continue
结束当前的循环体,进入下一次循环体的执行

 1 int main()
 2 {
 3     int cout = 0;
 4     while(count<=50)
 5     {
 6         ++count;
 7         if(count%10 ==0);
 8         {
 9             continue; //如果是10的倍数,那么就跳出if重新判断循环条件
10         }
11         printf("做第%d次俯卧撑
 count");//(循环体)    
12     }
13     return 0;
14 }
15             

break

直接结束整个while循环,退出整个循环的关键字

 1 int main()
 2 {
 3     int cout = 0;
 4     while(count<=50)
 5     {
 6         ++count;
 7         printf("做第%d次俯卧撑
 count");
 8         if(count == 30)
 9         {
10             break; //意思是循环进行到count== 30的时候退出整个while循环
11         }
12     }
13     return 0;
14 }    

总结
while 循环运行原理
1.如果一开始条件不成立,永远不会执行循环体
2.如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立.......


练习1:
提示用户输入一个正整数n,计算1+2+3+...+n的和

 1 #include <stdio.h>
 2 
 3 int main ()
 4 {
 5     int n =0; // 一定要初始化
 6     while(n <= 0)
 7     {
 8         //1.提示输入
 9         printf(请输入一个正整数:
);
10         //2.接收输入
11 
12         scanf("%d", &n);
13     }
14 
15 
16 
17 
18 /*****************方法2**************
19     int n;
20     if ( n <= 0) 
21     {
22         printf("非法输入!!");
23         return 0; 
24     }
25     int sum = 0
26 
27 ***********************************/
28 
29     int number =1 //默认被加的数值
30 
31 // 3.计算
32     while (number < n)
33     {
34         sum += number;
35         number++;
36     }
37 
38     printf("%d
", sum)
39     return 0;
40 }    

练习2:
计算100以内所有3的倍数的个数

 1 #include <stdio.h>
 2 
 3 int main ()
 4 {
 5     // 记录3的倍数的个数
 6     int count = 0;
 7 
 8     // 记录当前检查的数值
 9     int number = 0;
10 
11     while (number <100 )
12     {
13         number++;
14         //说明number是3的倍数
15 
16         if(number%3 == 0){
17         count++;
18         }
19     }
20     printf ("1-100内3的倍数的个数:%d
, count")
21     return 0;
22 }

while循环使用注意

while(10) // 10为真,为1
{
printf("hahahah ");
}

上面代码会引发死循环,所以要注意while循环的条件

int a = 10;
while(a>0)
printf("hahahah "); // 如果while后面没有大括号,那么会默认while后面第一个语句为循环体
{

}

int a = 10;
while(a>0); // 死循环,后面的分号代表while循环这个结构完了,后面不是while的部分

{
printf("hahahah ");
}

while(1); //最简单的死循环


do while 循环

do{

}while(条件); // do while 循环不管条件成不成立都会先执行一次条件

很多情况下while 和do while是可以互换的

for循环

for(语句1;条件;语句2)
{
循环体;
}

 1 #include <stdio.h>
 2 
 3 int main ()
 4 
 5 {
 6     for( int count = 0; count <50 ; count++)
 7     {
 8         printf("做第%d次俯卧撑
,count");
 9     }
10     return 0;
11 }

语句1:初始化语句
语句2:增量语句(执行完循环体后在执行的语句)

for循环一开始就会执行一次语句1(整个for循环只会执行一次)
判断条件是否成立,如果成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立

for 循环把变量定义在语句里面,语句结束后变量就会回收,而while 循环则把变量定义在语句外面,不能及时回收变量,所以for循环要比while性能要高。

for循环使用注意(在代码中详细介绍)

for(int i = 0;i<5;i++); //注意,不要随便在for()后面写分号
{
printf("haha ");
}


下面是错误写法,for定义变量要加{},不然变量的作用域会不明确,编译器报错
for(int i = 0;i<5;i++);
int a = 10;

for(int i = 0;i<5;i++,a++);
{
int a = 10; 这样定义是错误的,因为执行a++之前变量a就已经销毁了
//int i = 10; 这样定义是没错误的,因为语句1定义的i的作用域已经包括了语句2里面的i++
}
//循环体每次执行完都会自动销毁

for(;;); // for循环最简单死循环


for循环嵌套(用在像输出QQ好友列表的时候)

 1 #intclude <stdio.h>
 2 int main()
 3 {
 4     for(int i=3;i<=3;i++)
 5     {
 6         printf("好友列表%d
",i);
 7         for(int j =1;j<=6; j++)
 8         {
 9 
10             printf("好友%d
",j);
11         }
12     }
13     return 0;
14 }

上面代码会输出i个好友列表,每个列表有j个好友

for循环嵌套练习

// 提示用户输入一个正整数n,如果n=5,就输出下列图形,其他n值以此类推
*****
****
***
**
*

 1 #include <stdio.h>
 2 int main()
 3 {
 4     //提示一个变量储存用户输入的值
 5     int n =0;
 6 
 7     //判断n值合不合理
 8     while(n <=0)
 9     {
10         提示用户输入正整数
11         printf("请输入一个正整数:
");
12         scanf(%d,&a);
13     }
14     //输出图形
15 
16     for(int i=0; i<=n;i++) //有多少行
17     {
18         for(int j=0;j<=n-i;j++)
19         {
20             printf("*");
21         }
22         pintf("
");
23     }
24 
25     return 0;
26 }

额外知识补充

break和continue使用注意

break使用场合
1.switch语句,退出整个switch语句
2.循环结构:退出整个循环结构
while
do while
for

continue 使用场合
循环结构:结束当前这次循环体,进入下一个循环体
while
do while
for

break和while 只对最进的循环体有效

原文地址:https://www.cnblogs.com/jia694600474/p/3975934.html