C语言——流程控制
流程控制内容主要由选择控制和循环控制组成。
一、选择控制
(一)if 选择结构
1、if(表达式) 语句1;
2、if(表达式) 语句1; else 语句2;
3、if(表达式) { } “{}”为作用域,里面可以放多个满足条件的语句
4、if-else if-else 只有一个表达式会被判断执行
代码举例:
1 int a = 6; 2 3 if (a++ > 10) // a == 7 4 { 5 printf("A\n"); 6 } 7 else if (a++ > 5) // a == 8 8 { 9 printf("B\n"); 10 } 11 else if (a++ > 3) 12 { 13 printf("C\n"); 14 } 15 else 16 { 17 printf("D\n"); 18 } 19 20 printf("a的值是%d\n", a);
5、常见错误陷阱
1 比较大小时,常量值放左边,变量放右边 2 //if (a = 0) 3 if (0 == a) 4 { 5 printf("a等于0\n"); 6 } 7 else 8 { 9 printf("a不等于0\n"); 10 }*/ 11 12 /* 13 int a = 10; 14 15 // 注意赋值运算符,不要写成两个= 16 a = 15; 17 18 printf("%d\n", a); 19 */ 20 21 /* if语句后面不要写; 22 if ( 5>6 ); 23 { 24 printf("A\n"); 25 }*/ 26 27 28 /* 29 if (10 > 6) 30 { 31 int a = 5; 32 } 33 34 printf("%d\n", a); 35 */ 36 37 // 下面的代码是错误的:作用域不明确 38 if (10 > 6) 39 int a = 5; 40 // 如果要在if后面的语句中定义新的变量,必须用大括号{} 41 //printf("%d\n", a); 42
(二)选择结构-switch
1、使用格式: switch(表达式) { case 数值1: break; … default: break;}
1 #include <stdio.h> 2 3 4 int main() 5 { 6 //int a = 10; 7 // break:退出整个switch语句 8 // 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止 9 10 int b = 10; 11 12 switch (a) 13 { 14 case 10: 15 printf("A\n"); 16 b++; 17 case 5: 18 printf("B\n"); 19 b++; 20 case 0: 21 printf("C\n"); 22 b++; 23 break; 24 default: 25 printf("D\n"); 26 break; 27 } 28 29 printf("b的值是%d\n", b); 30 31 char c = '+'; 32 int a = 10; 33 int b = 20; 34 // 如果要在case后面定义新的变量,必须用大括号{}包住 35 switch (c) { 36 case '+': 37 { 38 int sum = a + b; 39 printf("和是%d\n", sum); 40 break; 41 } 42 43 case '-': 44 { 45 int minus = a - b; 46 printf("差是%d\n", minus); 47 break; 48 } 49 } 50 51 return 0; 52 }
二、循环控制
(一) While循环结构
1、while (条件){ 循环体 }
运行原理:
①如果一开始条件就不成立,永远不会执行循环体
②如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立......
2、break 直接结束整个while循环
3、continue 结束当前的循环体,进入下一次循环体的执行
1 //代码举例 2 3 #include <stdio.h> 4 5 int main() 6 { 7 // 1.先确定需要重复执行的操作 8 9 // 2.再确定约束条件 10 11 // 定义一个变量记录做的次数 12 int count = 0; 13 14 15 while (count < 50) 16 { 17 ++count; 18 19 printf("做第%d次俯卧撑\n", count); 20 21 if (count == 20) 22 { 23 break; 24 } 25 } 26 27 28 return 0; 29 }
(二)do-while 循环
最少执行一次循环体
do {
} while(条件);
while和do-while的区别
1.很多情况下,while和do while可以互换
2.while特点:如果一开始的条件不成立,永远不会执行循环体
do while特点:不管一开始的条件是否成立,至少会执行一次循环体
1 //代码举例 2 #include <stdio.h> 3 4 int main() 5 { 6 int i = 0; 7 8 /* 9 while (i<0) 10 { 11 i++; // 5 12 }*/ 13 14 do { 15 i++; // 5 16 } while (i<0); 17 18 printf("i=%d\n", i); 19 20 return 0; 21 }
(三) for 循环结构
for (语句1; 条件; 语句2)
{
循环体
}
语句1:初始化语句
语句2:增量语句(执行完循环体后再执行的语句)
1. for一开始就会执行一次语句1(整个for循环只会执行一次)
2. 判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立
1 //代码举例 2 #include <stdio.h> 3 int main() 4 { 5 6 for (int count = 0; count < 50; count++) 7 { 8 printf("第%d次输出\n",count); 9 } 10 11 return 0; 12 }
三、break 和 continue
(一)break:
1.使用场合
① switch语句:退出整个switch语句
② 循环结构:退出整个循环语句
* while
* do while
* for
2.注意点
只对最近的循环结构有效
(二)continue:
1.使用场合
循环结构:结束当前这次的循环体,进入下一次循环体
* while
* do while
* for
2.注意点
只对最近的循环结构有效