初阶C语言:分支语句

1. 什么是语句

C语言的语句可以分为以下五类:

  • 表达式语句

  • 函数调用语句

    • 控制语句:

      • 条件判断语句/分支语句:
        • if语句,switch语句

      • 循环执行语句:
        • do...while语句,while语句,for语句
      • 转向语句:
        • break语句,goto语句,continue语句,return语句
  • 复合语句

  • 空语句

2. 分支语句(选择结构)

(1)if语句

0表示假,非0表示真;

如果条件成立,要执行多条语句时,必须加上大会括号“{ }”。【如果不加“{ }” ,if 和 else默认只能控制一条语句】

#include<stdio.h>
int main()
{
    int age;
    scanf("%d",&age)
    if(age<18)
        printf("青少年\n");
    else if(age>=18 && age<40)    
        printf("青年\n");
    else if(age>=40 && age<60)
        printf("壮年\n");
    else if(age>=60 && age<100)
        printf("老年\n");
    else
        printf("寿星\n");                                    
    return 0;
}

补充:以下格式不规范,但无语法错误的格式

int num = 2;
//(1)
if(5 == num)
    return 0;
//(2)
if(num == 3)
    return 1;
return 0;
//(3) 报错
if(7=num)    /// 会报错

举例:

//1. 判断一个数是否为奇数
#include<stdio.h>
int main()
{
    int num;
    scanf("%d",&num);
    if(num % 2 == 1)
    {
        printf("%d为奇数",num);    
    }
    else{
        printf("%d为偶数",num);    
    }
    return 0;
}
// 2. 输出1-100之间的奇数
#include<stdio.h>
int main()
{
    printf("1-100之间的奇数:");       //  int i= 1;
    for(int i = 1; i <= 100; i++)    //  while(i<=100)
    {
        if(i % 2 == 1)
        {
            printf("%d  ",i);        
        }    
    }
    return 0;
}

(2)switch语句

switch语句有且仅有一个 default 子句,但是它可以出现在语句列表的任意位置(即switch语句块的任意位置)

switch(表达式) { 
    case 常量值 1: 
        语句 1; 
        break;
    case 常量值 2:
        语句 2; 
        break;
    ....
    default:
        语句 3; 
        break;
} 

#include<stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
    {
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二 \n");   
            break;
        case 3:
            printf("星期三\n");
            break;
        case 4:
            printf("星期四 \n");   
            break;
        ... 
        default:
            printf("选择出错!!!");
            break;                                                                        
    }
}

举例:

// 1-5 打印 weekday;6-7打印weekend
#include<stdio.h>
int main()
{
    int day = 0;
    scanf("%d",&day);
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        printf("weekday\n");
        break;
    case 6:
    case 7:
        printf("weekend\n");
        break;
    default:
        printf("选择出错!!!");
        break;
}
// 输出结果为: 5 3
int main()
{
    int n = 1;
    int m = 2;
    switch (n)
    {
        case 1: m++;    /// 符合,进入 m=3,n=1
        case 2: n++;    /// 由于case 1没有break,继续运行  m=3,n=2
        case 3:    ///由于case 1没有break,继续运行
            switch (n)
            {        //新的 switch,需要新的入口,此时 m=3 ,n=2
                case 1: n++;    // 不符合,不是入口
                case 2:m++; n++;    //  符合,执行  m=4,n=3
                break;    //遇到break 终止该switch语句块            
            }    
         case 4:    //但是 外部的 case 3 依然没有 break,因此继续执行 case 4
             m++;    // 执行 m=5, n=3
             break;    // 遇到 break,终止该 switch语句块,
         default:
             break;                                            
    }
    printf("m=%d  n=%d",m,n);    //即跳到此处,打印
    return 0;    // 打印完成返回 return 0
}    // 程序结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值