选择结构
概念:跟据if语句块中的逻辑选择需要执行的代码块。
跟据程序的逻辑选择运行的代码块。
请法有三种写法
写法一
if(逻辑表达式){
内容
}
案例:
int main()
{
// 选择结构语句 if
int a = 1;
int b=8;
if(a<b){ //a<b条件结果为真就会运行下面代码块
printf("hi 你执行到我了\n");
}
printf("程序结束\n");
return 0;
}
写法二
if(逻辑表达式){
if内容
}else{
//否则内容
}
案例:
if(a>b){ //条件成立走 if块代码 不成立走否则代码块
printf("hi 你执行到我了\n");
}else{
printf("走了否则语句\n");
}
写法三
if(逻辑值){
//if语句块
}else if(逻辑值){
//else if 语句块
}else if(){}.......多个else if....{
}else{ //可加可不加
//else代码块
}
案例
int a = 1;
int b = 8;
if(a>b){
printf("hi 你执行到if块逻辑\n");
}else if(4>9){
printf("hi 你执行到else if块4>9逻辑\n");
}else if(6>3){
printf("hi 你执行到else if块6>3逻辑\n");
}else if(a<b){
printf("hi 你执行到else if块a<b逻辑\n");
}else{
printf("hi 你执行到else 块逻辑\n");
}
总结
在同一个连起来的if语句块中所有的if else if else 只要其中一个滿足了条件下面的语法块就不会执行了
题目练习
题目1: 从控制台输入两个整数a 和 b进行比较如果a 大于b 在控制台打输出 "帅哥" ,如果 a小于b 打印 "美女"。
int a,b;
printf("请输入a和b的值用空格分开:");
scanf("%d %d",&a,&b); //从控制台接收值
if(a>b){
printf("帅哥\n");
}else{
printf("美女\n");
}
语法注意
int a = 9,b = 18;
if(a>b) //没有{} 大括号只会影响 下面语法的第一句。
printf("执行了一");
printf("执行了二");
printf("执行了三");
作业1:
从控制台输入一个分数:如果大于等于90分则打印优秀,大于等于80分小于90分打印良好,大于等于70分小于80分还好,大于等于60分小于70分打印及格,小于60分则打印不级格。
printf("请从控制台输入一个分数然后回车:");
float score;
scanf("%f",&score);
if(score >=90){
printf("优秀\n");
//80<=score <90 不是数学表达式
}else if(score < 90 && score >=80){
printf("良好\n");
}else if(score < 80 && score >=70){
printf("还好\n");
}else if(score < 70 && score >= 60){
printf("及格\n");
}else{
printf("不及格\n");
}
作业2:
从控制台输入一个三个数,然后选出最大的数打印到控制台.
答案1
printf("从控制台输入三个整数\n");
int d,b,c;
printf("请输入第一个数后回车\n");
scanf("%d",&d);
printf("请输入第二个数后回车\n");
scanf("%d",&b);
printf("请输入第三个数后回车\n");
scanf("%d",&c);
int max = 0;
if(max < d){
max = d;
}
if(max < b){
max = b;
}
if(max < c ){
max = c;
}
printf("输入的最大数为:%d",max);
答案2
printf("请从控制台输入三个整数,用下划线隔开然后回车");
int a,b,c;
scanf("%d_%d_%d",&a,&b,&c);
int max = a;
if(max < b){
max = b;
}
if(max < c){
max = c;
}
printf("输入的最大数是%d",max);
作业总结
案例
int a =10,b = 5,c = 5;
if(a - b){
printf("打印了我1\n"); //会打印
}
if(b - c){
printf("打印了我2\n"); //不会打印
}
if(c - a){
printf("打印了我3\n"); //会打印
}
总结
if里面的逻辑的值 非0即为真,0就为假