C生万物之分支语句即if...else与switch语句详细介绍<三>

03-01 1327阅读

今天是大年初五,祝看到这段话的朋友,24年发发发,龙年大吉

C生万物之分支语句即if...else与switch语句详细介绍<三>

文章目录

    • 前言
    • 一.if语句
      • 1-1 if
      • 1-2 .else
      • 1-3.分支中包含多语句
      • 1-4.嵌套if
      • 1-5.悬空else问题
      • 二.switch语句
        • 1-1 if语句和switch语句的对比
        • 2-2switch语句中的default
        • 2-3switch语句中的case和default的顺序问题

          前言

          C语言是结构化的程序设计语言,这里的结构指的是顺序结构,选择结构,循环结构。其实我们的日常生活处理事情也是这三种结构的组合。通常我们使用 if ,switch来实现分支结构,用while,do while,for语句实现循环结构。

          一.if语句

          1-1 if

          1. if(表达式)
          2. 语句

          ()中表达式成立为真,语句执行,反之则不执行。

          在C语言中,0表示假,非零表示真,也就是表达式为0则语句不执行,若非零,则语句执行

          例子如下:输入一个整数判断是否为奇数

          #include
          int main()
          {
          int num = 0;
          scanf("%d",&num);
          if(num % 2 == 0)
          printf("%d是偶数\n",num);
          return 0 ;
          }
          

          1-2 .else

          我们知道if语句之后还想得到相反的结果,这里我们就要用到else。

          1. if(表达式)
          2. 语句1
          3. else
          4. 语句2

          例子如下:输入一个整数判断是奇数还是偶数

          #include
          int main()
          {
          int num = 0;
          scanf("%d",&num);
          if(num % 2 == 0)
          printf("%d是偶数\n",num);
          else
          printf("%d是奇数",num);
          return 0 ;
          }
          

          1-3.分支中包含多语句

          默认if和else只控制一条语句也就是说

          #include
          int main()
          {
          int num = 0;
          scanf("%d",&num);
          if(num % 2 == 0)
          printf("%d是偶数\n",num);
          printf("hello");
          return 0 ;
          }
          

          在上面的代码中,不论数字是否为偶数,都会在屏幕上打印hello,因为if或者else只能控制一条代码,则改正代码为:

          #include
          int main()
          {
          int num = 0;
          scanf("%d",&num);
          if(num % 2 == 0)
          {
          printf("%d是偶数\n",num);
          printf("hello");
          }
          return 0 ;
          }
          

          这样就只会在输入偶数时打印hello。

          1-4.嵌套if

          在if else语句中,else还可以与另一个if语句连用,构成多重判断。比如:要求输入一个整数,判断输入的整数是0,还是正数或负数

          #include
          int main()
          {
          int num = 0;
          scanf("%d",&num);
          if(num == 0)
          printf("输入的数字为0\n");
          else if(num>0)
          printf("输入的数字为正数\n");
          else
          printf("输入的数字为负数\n");
          return 0 ;
          }
          

          1-5.悬空else问题

          如果有多个if 和else,可以记住这样一条规则,else总是和最近的一条if匹配。

          补充说明

          表达式中关系比较,一般返回值为0或1来表示真假,关系表达式常用于if或while结构。

          注意

          相等运算符==与赋值运算符=是两个不一样的运算符,不要混淆。

          二.switch语句

          除了if语句外,C语言还提供了switch语句来实现分支结构。其实switch语句是一种特殊的if else结构,它简化了多重else if,增加了可读性。

          switch(expression)

          {

          case 1:

          case 2:

          }

          上述代码中,根据表达式expression不同的值,执行相应的case分支,若找不到则执行default

          注意

          switch后的expression必须是整型表达式

          case后的值,必须是整形常量表达式

          1-1 if语句和switch语句的对比

          eg:输入任意一个整数值,计算除3之后的余数

          如果用if语句完成:

          #include
          int main()
          {
          int n = 0;
          scanf("%d",&n);
          if(n%3 == 0)
          printf("余数是0\n");
          else if (n%3==1)
          printf("余数是1\n");
          else
          printf("余数是2\n");
          return 0 ;
          }
          

          用switch语句改写如下

          #include
          int main()
          {
          int n = 0;
          scanf("%d",&n);
          switch(n%3)
          	{
          	case 0:
          	printf("余数是0\n");
          	break;
          	case 1:
          	printf("余数是1\n");
          	break;
          	case 2:
          	printf("余数是2\n");
          	}
          return 0 ;
          }
          

          注意

          1.case和后面的数字之间必须有空格

          2 每一个case语句执行完成后,只有加上break,才能跳出这个switch语句若不加break,则进行完该条分支后会继续进行下一条分支。

          2-2switch语句中的default

          在使用switch语句中,我们可能遇到表达式的值无法匹配到代码中的case语句,这个之后就需要加上default子句

          switch(expression)

          {

          case 1:

          case 2:

          default:

          }

          代码示例如下

          #include
          int main()
          {
          int day = 0;
          scanf("%d",&day);
          switch(day)
          	{
          	case 1:
          	case 2:
          	case 3:
          	case 4:
          	case 5:
          	printf("工作日\n");
          	case 6:
          	case 7:
          	printf("休息日\n");
          	default:
          		printf("输入错误,请重新输入\n");
          	}
          return 0 ;
          }
          

          2-3switch语句中的case和default的顺序问题

          其实在switch语句中,case语句和default语句没有顺序要求,只要你的顺序满足实际需求即可。但是通常,我们把default语句放在最后处理。

          看到这里,能不能留下您宝贵的赞,鼓励我一下,非常感谢!!!

          (如有错误,麻烦各位大佬评论区指正,感谢!)

          …下篇文章将详细介绍循环语句

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]