C++中switch语句中的输入值及break的使用-创新互联

  在语句switch中,输入的字符及case后面的数据必须为整型枚举常量或整数表达式,如该程序中:

创新互联建站专注于企业网络营销推广、网站重做改版、松北网站定制设计、自适应品牌网站建设、HTML5商城系统网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为松北等各大城市提供网站开发制作服务。
#includeint main()
{
  int n=2;
  switch(n)
      {
        case 1:
          printf("星期一"); 
          break;
        case 1+1:
          printf("星期二");
          break;
        default:
          break;
      }
  return 0;
}

 常量n可以为任意整型数,case后面也可以为如“1+1”一类的整数表达式,但一旦使用非整型则会报错。

 break是switch语句中的结束跳出词,而其所跳出的只是其所在一个switch语句。当一个switch语句中没有break的时候,其会从输入的case开始一直往后执行,直到遇到break或该switch语句结束为止。就如同该程序段:

#includeint main()
{
  int n=2;
  switch(n)
      {
        case 1:
          printf("星期一");
        case 2:
          printf("星期二");
        case 3:
          printf("星期三");
        case 4:
          printf("星期四");
        case 5:
          printf("星期五");
        case 6:
          printf("星期六");
        case 7:
          printf("星期天");
        default:
          break;
      }
  return 0;
}

由于n=2,所以其输出的结果就跳过了星期一,从“星期二”开始输出一直到该switch语句结束——星期二星期三星期四星期五星期六星期天。

 如果在case:4之前加上一个break,则输出结果仅为“星期二星期三”

#includeint main()
{
  int n=2;
  switch(n)
      {
        case 1:
          printf("星期一");
        case 2:
          printf("星期二");
        case 3:
          printf("星期三");
          break;
        case 4:
          printf("星期四");
        case 5:
          printf("星期五");
        case 6:
          printf("星期六");
        case 7:
          printf("星期天");
        default:
          break;
      }
  return 0;
}

switch语句是可以进行嵌套使用的,而在嵌套中就要格外注意break退出的是哪个语句了,就如这个程序:

#includeint main()
{
  int n=1,m=2;
  switch(n)
      {
        case 1:
          m++;
        case 2:
          n++;
        case 3:
          switch(n)
             {
               case 1:
                 n++;
               case 2:
                 m++;
                 n++:
                 break;
               default:
                 break;
             }
        case 4:
          m++;
        break;
        default:
          break;
      }
  printf("m=%d,n=%d\n",m,n);
  return 0;
}

该程序输出结果为:m=5,n=3。其原因就是break第一次退出只是退出嵌套进去的那一个switch,然后继续往下面进行。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文标题:C++中switch语句中的输入值及break的使用-创新互联
标题来源:http://myzitong.com/article/doscdh.html