首页 > 代码库 > 黑马程序员——c语言的流程控制
黑马程序员——c语言的流程控制
1、 流程控制
● 顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
● 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
● 循环结构:在给定条件成立的情况下,反复执行某一段代码。
2、 选择结构-if
1. 简单使用
● if (表达式) 语句1; 注:如果条件为真,就执行后面的语句,否则不执行。
◆ if(count>50) 开班; 上课;
1 #include <stdio.h> 2 int main() 3 { 4 // 人数 5 int count = 80; 6 7 if ( count >= 50 ) 8 { 9 printf("开班!!!\n");10 printf("准备机器!!!\n");11 }12 13 return 0;14 }
● if(表达式) 语句1; else 语句2; 注:如果条件成立就执行语句1,否则执行语句2。
◆ if(count>50) 开班; else 不开班;
1 #include <stdio.h> 2 int main() 3 { 4 // 人数 5 int count = 40; 6 7 if ( count >= 50 ) 8 { 9 printf("开班!!!\n");10 printf("准备机器!!!\n");11 }12 else13 {14 printf("不开班!!!\n");15 printf("不准备机器!!!\n");16 17 }18 19 return 0;20 }
● if(表达式) { }
◆ if(count>50) {开班; 布置课室;} else {}
◆ { }的作用域
● if -else if-else
◆ if(a==0) else if (a>0) else
◆ 特点:只有一个括号会被执行
1 #include <stdio.h> 2 int main() 3 { 4 int a = 5; 5 6 if (a++ > 18) // a == 6 7 { 8 printf("A\n"); 9 }10 else if (a++ > 9) // a == 711 {12 printf("B\n");13 }14 else if (a++ > 5) // a == 815 {16 printf("C\n");17 }18 else19 {20 printf("D\n");21 }22 23 printf("a的值是%d\n", a);24 25 return 0;26 }
● 陷阱
◆ if(a!=0) { a不是0;} else {a是0;}
◆ if (a); { } if后不要写分号
◆ if (a=0) 错误
◆ a == 0;
◆ if (10) int a = 9;
注:
if (a>1)
printf("A\n");
printf("B\n");
不管a取多少B都打印与if语句没关系
2. 习题
1> 输入一个整数day代表星期几,根据day的值输出对应的星期几,比如day==1,就输出“星期一”
1 #include <stdio.h> 2 int main() 3 { 4 // 1.输入一个整数day 5 printf("输入一个整数day\n"); 6 7 // 2.接收输入 8 int day; 9 scanf("%d", &day);10 11 // 3.判断等级12 if (day == 1) {13 printf("星期一\n");14 } else if (day == 2){15 printf("星期二\n");16 } else if (day == 3) {17 printf("星期三\n");18 } else if (day == 4) {19 printf("星期四\n");20 } else if (day == 5) {21 printf("星期五\n");22 } else if (day == 6) {23 printf("星期六\n");24 } else if (day == 7) {25 printf("星期日\n");26 27 }28 return 0;29 }
2> 输入一个整数month代表月份,根据月份输出对应的季节。
春季:3、4、5
夏季:6、7、8
秋季:9、10、11
冬季:12、1、2
1 #include <stdio.h> 2 int main() 3 { 4 // 1.输入一个整数day 5 printf("输入一个整数month代表月份"); 6 7 // 2.接收输入 8 int month; 9 scanf("%d", &month);10 11 // 3.判断等级12 if (month == 3||month == 4||month == 5) {13 printf("春季\n");14 } else if (month == 6||month == 7||month == 8){15 printf("夏季\n");16 } else if (month == 9||month == 10||month == 11) {17 printf("秋季\n");18 } else if (month == 12||month == 1||month == 2) {19 printf("冬季\n");20 }21 return 0;22 }
3> 输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
A:90~100
B:80~89
C:70~79
D:60~69
E:0~60
1 #include <stdio.h> 2 int main() 3 { 4 // 1.提示输入 5 printf("请输入分数值:\n"); 6 7 // 2.接收输入 8 int score; 9 scanf("%d", &score);10 11 // 3.判断等级 12 if (score>=90 && score<=100) { // [90, 100]13 printf("A\n");14 } else if (score>=80) { // [80, 89]15 printf("B\n");16 } else if (score>=70) { // [70, 79]17 printf("C\n");18 } else if (score>=60) { // [60, 69]19 printf("D\n");20 } else { // (-∞, 59]21 printf("E\n");22 }23 return 0;24 }
3、 选择结构-switch
1. 简单使用
● switch(表达式) { case 数值1: break; … default: break;}
● 举例
int a = 10;
switch (a) {
case 0:
printf("这是一个0");
break;
case 5:
printf("这是一个5");
break;
case 10:
printf("这是一个10");
break;
default:
printf("什么也不是");
break;
}
● 简述break的作用
● 在case中定义变量
2. if和switch的对比
● 很多情况可以互换
● if用得比较多,比较灵活,switch只能某个单值
3. 习题
用switch替代if实现if中的习题
4、 循环结构-while
1. 简单使用
● 连续printf(“俯卧撑”)20次;
● while(表达式) { }
● continue:输出5次休息一下
● break的使用:某次的时候停止循环
2. 特点
只有条件成立才会执行循环体
3. 习题
1> 提示用户输入一个正整数n,计算1+2+3+…+n的和
2> 提示用户输入一个正整数n,计算1-2+3-4+5-6+…+n的和
4. 陷阱
while(条件);
5、 循环结构-do while
● 特点:一定会执行一次循环体
● while和do while循环对比
int i=0;
while(i<0){
i++;
}
int i=0;
do{
i++;
} while(i<0);
6、 循环结构-for
1. 简单实用
● 运行过程
● 初始化语句等可以是多句(把printf放到for的括号中)
2. for循环嵌套
好友列表1
?好友1
?好友2
好友列表2
?好友1
?好友2
好友列表3
?好友1
?好友2
3. 陷阱
1> 死循环 for(;;);
2> for循环体内部变量的作用域
3> 作用域混淆
for (int i = 0; i<5; i++) int a = 10;
4. while循环和for循环的比较
● 可以互换
● for循环的变量可以及时回收
5. 习题
1> 提示用户输入一个正整数n,如果n5,就输出下列图形,其他n值以此类推
2> 输出九九乘法表
7、 break和continue
1. break
● 使用场合:switch\循环结构
● 循环嵌套下的break
2. continue
● 使用场合:循环结构
● 循环嵌套下的continue
黑马程序员——c语言的流程控制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。