0
点赞
收藏
分享

微信扫一扫

分支循环结构(switch语句)

if语句会根据对某个条件的判断结果,将程序的流程分为两支,而switch语句,则会将程序分为多个分支。那么我们就用一个例子来展现switch语句特殊于if语句的地方。显示输入的整数除以3所得余数的程序,首先我们用if语句来书写:

#include<stdio.h>
int main()
{
  int num;
  printf("请输入一个整数:");
  scanf("%d",&num);
  if(num%3==0)
    printf("输入的整数能够被3整除。");
  else if(num%3==1)
    printf("输入的整数除以3的余数是1。");
  else
    printf("输入的整数除以3的余数是2。");
  return 0;
}

上面程序使用了两次计算num除以3的余数表达式num%3,多次输入同一个表达式,容易造成输入错误,不仅如此同一个除法执行两次也会使得程序略显冗长,通过某一单一表达式的值,将程序分为多个分支的时候,可以使用switch语句,这样可以让程序更简洁。switch语句的语法结构如下:

  switch (expression)

{

       case value1: statement

       case value2: statement

       default: statement

 }

上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值, 就执⾏ default 分⽀。注意:switch 后的 expression 必须是整型表达式,case 后的值,必须是整形常量表达式。上面的例子我们用switch语句修改后如下:

#include<stdio.h>
int main()
{
  int num;
  printf("请输入一个整数:");
  scanf("%d",&num);
  switch(num%3)
  {
    case 0:printf("输入的整数能够被3整除。");
    case 1:printf("输入的整数被3整除的余数为1。");
    case 2:printf("输入的整数被3整除的余数为2。");
  }
  return 0;
}

switch 语句也是有分⽀效果的,只有在 switch 语句中使⽤ break 才能在跳出 switch 语 句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续玩下执⾏,有可能执⾏其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。就⽐如上⾯的代码就执⾏了 case 2 中的语句。 所以在 switch 语句中 break 语句是⾮常重要的,能实现真正的分⽀效果。 当然, break 也不是每个 case 语句都得有,这就得根据实际情况来看了。

在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹 配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊ default ⼦句。

举报

相关推荐

0 条评论