打卡学习C语言-if条件语句-switch条件语句

本文详细介绍了if条件语句的基本结构和用法,包括单分支、双分支和多分支的情况。同时,讲解了switch语句的执行机制,以及如何通过break来控制流程。文中还提供了实例代码,演示了如何判断奇数、打印特定范围内的奇数,以及使用switch进行日期分类。最后,提到了switch的嵌套和break的作用。
摘要由CSDN通过智能技术生成

if条件语句:

基本组成

if(表达式)
    
    语句;

通过判断表达式的真假,是否执行语句。

0 为假,非0为真。

双分支:

判断表达式是否为真,为真执行语句1,否则执行语句2

if(表达式)
    语句1;
else
    语句2;

多分支:

     int age = 20;

    if(age<18)

        printf("未成年\n");

    else if(age>=18 && age<60)

        printf("成年\n");

    else 
        printf("老登\n");

使用多条语句时,需要使用代码块 { }

    int age = 10;
    if(age<18)
    {
        printf("未成年\n");
        printf("--禁止喝酒");
    }
      
    else if(age>=18 && age<60)
        printf("成年\n");
    else 
        printf("老登\n");

else是和它最近的if相匹配的

     int a = 1;
    int b = 2;

    if(2 == a)
        if(2 == b)
            printf("hello");
    else
        printf("hhhhh");

结果没有任何东西输出,因为else和他最近的if相匹配

规范代码的书写,可以增加代码的可读性

​
 if(2 == a)//表达式为假//所以代码块中不执行
 {
      if(2 == b)
          printf("hello");
      else
          printf("hhhhh");
 }

​

练习:

判断一个数是否为奇数:   

int num = 11;


if(num%2 == 1)
    printf("是奇数%d",num)

打印0-100之间的奇数

int a = 1;

while(a<=100)
{
    if(a%2 == 1)
    {
        printf("%d",a);
    }
    
    a++;
}


//    int a = 1;
 //   while(a<=100)
 //   {
        
 //       printf("%d ",a);
  //      a+=2;
  //  }


switch(整型表达式)

switch(整型表达式)
    {
        语句向;
    }

语句项:

case 整型常量表达式

 case 整型常量表达式

       语句;
 int a = 1;
    scanf("%d",&a);

    switch(a)
    {
        case 1:
            printf("周一\n");
        case 2:
            printf("周二\n");
        case 3:
            printf("周三\n");
        case 4:
            printf("周四\n");
        case 5:
            printf("周五\n");
        case 6:
            printf("周六\n");
        case 7:
            printf("周日\n");
    }

输入2则会打印

c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan>cd "c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan\" && gcc a.c -o a && "c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan\"a
2
周二
周三
周四
周五
周六
周日

这是因为switch根据 ( )中的整型表达式决定从哪个case进入,但是并没有决定从哪里出去

如果不想让它继续执行下去,使用break语句

int a = 1;
    scanf("%d",&a);

    switch(a)
    {
        case 1:
            printf("周一\n");
        case 2:
            printf("周二\n");
            break;
        case 3:
            printf("周三\n");
        case 4:
            printf("周四\n");
        case 5:
            printf("周五\n");
        case 6:
            printf("周六\n");
        case 7:
            printf("周日\n");
    }



c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan>cd "c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan\" && gcc a.c -o a && "c:\Users\86153\Desktop\csdn_笔记\fenzhi-xunhuan\"a
2
周二

同理当打印1 - 7 其中的一个都可以使用break语句

 switch(a)
    {
        case 1:
            printf("周一\n");
            break;
        case 2:
            printf("周二\n");
            break;
        case 3:
            printf("周三\n");
             break;
        case 4:
            printf("周四\n");
             break;
        case 5:
            printf("周五\n");
             break;
        case 6:
            printf("周六\n");
             break;
        case 7:
            printf("周日\n");
             break;
    }

当输入的值超出范围(1-7)时,在最后的case后面添加一个提示

        default:
            printf("超出范围");
            break;

将1-5划分为工作日,6.、7为假期。

输入1-5时打印工作日,6、7时打印为假期

  switch(a)
    {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("工作日\n");
             break;
        case 6:
        case 7:
            printf("假期\n");
             break;
        default:
            printf("超出范围");
            break;
    }

当输入 1 时

switch根据 ( )中的整型表达式决定从case 1 进入,但是并没有决定从哪里出去,所以会一直往下执行,执行到case5打印 工作日 然后case5有break语句终止执行。

switch可以嵌套. switch中的break只能跳出自己的switch

​
​
    int a = 1;
    int b = 2;

    switch(a)//从case 1 进入
    {
        case 1:
            a++;//a = 2
        case 2:
            b++;//b = 3
        case 3:
            switch(a)//a = 2 所以从case 2 进入
            {
                case 1:
                    a++;//case 1不执行
                case 2:
                    b++;//b = 4
                    break;//终止自己的switch
            }
            //case 3 没有break语句
            //继续执行
        case 4:
            b++;//b = 5
            break;

    }

    printf("a=%d b=%d",a,b);// 2  5

​

​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值