四、选择结构之if

选择结构

概念:跟据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就为假

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容