第三章 - c语言中的分支结构

一、if分支结构
  1. 基本分支结构1:

    (1) 语法:
        if(表达式){
            // 语句
        }
    (2) 执行原理:如果if()中表达式的结果为真(非零),则执行{}中的语句
    (3) 注意:if后面()表达式可以是关系表达式、逻辑表达式、甚至是数值表达式,结果为非0,即为真
    
    案例:
    #include <stdio.h>
    void main(){
    	// 输入一个整数,存储在n变量中,如果n是大于5的数据,则打印信息 
    	printf("输入一个整数:");
    	int n ;
    	scanf("%d", &n);
    	if(n>5){
    		printf("n=%d\n",n);
    	}
    	
    	printf("ending...");
    }
    
  2. 基本分支结构2:

    (1) 语法:
        if(表达式){
            // 语句1
        }else{
            // 语句2
        }
    (2) 执行原理:如果if()中表达式的结果为真(非零),则执行语句1;否则执行语句2
    
    案例:
    #include <stdio.h>
    void main(){
    	// 输入一个整数,存储在n变量中,如果n是偶数,则打印"我是偶数",否则打印"我是奇数" 
    	printf("输入一个整数:");
    	int n ;
    	scanf("%d", &n);
    	if(n%2==0){
    		printf("我是偶数\n");
    	}else{
    		printf("我是奇数\n");
    	}
    	
    	printf("ending...");
    }
    
  3. 多重分支结构:

    (1) 语法:
        if(表达式1){
            // 语句1
        }else if(表达式2){
            // 语句2
        }else if(表达式3){
            // 语句3
        }else{
            // 语句4
        }
    (2) 执行原理:从第一个if的表达式开始执行,如果条件一旦成立,则执行对应{}中的语句,如果都不成功,则执行else中的语句。
    
    案例:
    #include <stdio.h>
    void main(){
    	printf("输入一个成绩:");
    	double score;
    	scanf("%lf", &score);
    	printf("%f",score);
    	if(score>90 && score<=100){
    		printf("优秀\n");
    	}else if(score>80 && score<=90){
    		printf("良好\n");
    	}else if(score>=60 && score<=80){
    		printf("及格\n");
    	}else{
    		printf("再考一遍\n");
    	}
    	
    	printf("ending...");
    }
    
    // 注意:输入double类型的数据使用 "%lf"
    
  4. 嵌套的分支结构:

    (1) 语法:
        if(表达式){}
            if(表达式1){
                // 语句1
            }else if(表达式2){
                // 语句2
            }else if(表达式3){
                // 语句3
            }else{
                // 语句4
            }
        }else{
            // 语句n
        }
    (2) 执行原理:先判断外层条件,再判断内层条件
    
    案例:
    #include <stdio.h>
    void main(){
    	printf("输入一个成绩:");
    	double score;
    	scanf("%lf", &score);
    	printf("%f",score);
    	if(score>=0 && score<=100){	
    		if(score>90 && score<=100){
    			printf("优秀\n");
    		}else if(score>80 && score<=90){
    			printf("良好\n");
    		}else if(score>=60 && score<=80){
    			printf("及格\n");
    		}else{
    			printf("再考一遍\n");
    		}
    	} else{
    		printf("输入的成绩无效....");
    	}
    	
    	printf("ending...");
    }
    
二、switch…case等值分支结构
  1. 语法:

    switch(表达式){
       case 值1:语句1;break;
       case 值2:语句2;break;
       case 值3:语句3;break;
       ...
       default:语句n;break;
    }
    
  2. 注意细节:

    (1) switch后面()表达式结果类型必须为整数类型(包括字符类型)
    (2) case后面的值不能重复
    (3) break:终止、结束case结构,防止case穿透
    
  3. 执行原理:

    首先根据switch()中表达式得到一个结果,根据结果,从上往下匹配case后面的值,哪一个匹配成功,则执行对应后面的语句;如果都没有匹配成功,则执行default对应的语句。
    
  4. 案例:

    #include <stdio.h>
    void main(){
    	printf("输入一个整数:");
    	int n;
    	scanf("%d", &n);
    	switch(n){
    		case 1:printf("星期一");break;
    		case 2:printf("星期二");break;
    		case 3:printf("星期三");break;
    		case 4:printf("星期四");break;
    		case 5:printf("星期五");break;
    		default:printf("周末啦...");break;
    	}
    	
    	printf("\nending...");
    }
    
  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值