c++ switch语句的使用(case 后面可以跟N个语句)

您所在的位置:网站首页 open后面可以跟什么 c++ switch语句的使用(case 后面可以跟N个语句)

c++ switch语句的使用(case 后面可以跟N个语句)

2024-07-10 22:56| 来源: 网络整理| 查看: 265

switch语句在处理多分支语句时是一种清晰结构(相比于一系列的if else if ...),

在一般书上的讲解时会给出如下的一般形式:

switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; … case 常量表达式n: 语句n; default: 语句n+1; } switch后的括号里面 是一个表达式,根据这个表达式返回的值(通常是多值),我们来执行相应的语句,这就是下面

case语句所做的事情,case相当于一个if判断,所谓的常量表达式n其实就是switch后面表达式的值。

        当我们看到这个switch语句的一般形式的时候,我们总会产生一系列的疑问:

          (1)switch 语句在实际应用中一般怎么用?、

          (2)case 后面可以跟几个语句?

接下来我们来解答这两个问题:

          (1)在实际中我们习惯在每一个case语句最后加上一个break,跳出switch语句,如果我们不写break表达式,

那么程序还是会继续向下执行,去判断下一个case,从而浪费时间。当然你也可以利用这个特点来处理一些问题,

就像研发最常跟测试他们说的那句话:“这是特性,不是BUG!”,最后default语句可有可无,具体的选择看具体的

情况。

          (2)上面的一般形式中case语句后只写了一个语句,最开始学的时候我特别疑惑,case后的语句只能跟

一个吗?我有很多语句怎么办,我在case语句里面还有if语句怎么办,其实这些担忧都是没有必要的,在case

语句后面可以有N多语句,这些语句的书写跟在正常逻辑下无区别,你在一个函数里怎么写if语句,在这里就怎么

写。下面我给出个具体例子来演示switch语句:

switch(in_temp) { case 1: if (input_num == 0) { i--; }else { i--; grade -= grade / 10; // if grade < 0 set grade = 0 grade = grade > 0 ? grade : 0; if (input_num > number) { printf("Bigger than number\n",input_num); }else { printf("Smaller than number\n",input_num); } } break; case 2: i--; grade -= (grade / 10); grade = grade > 0 ? grade : 0; // is even number if (input_num % 2 == 0) { printf("Not prim\n"); }else { printf("Is prim\n"); } break; case 3: i--; grade -= (grade / 10); grade = grade > 0 ? grade : 0; //test the Prim() function //number = 457; if (Prim(number)) { int leftn; int rightn; scanf("%d %d", &leftn, &rightn); // output the Prim in [leftn,rightn] for (int j = leftn; j 0 ? grade : 0; // judge the number can divide by 3 if (number % 3 == 0) { /* code */ printf("can multi by 3\n"); }else printf("can not multi by 3\n"); break; default: break; } }

由上面的例子,我们就很清晰的看到了switch语句的应用。

另外还要注意一点:switch(val)里的参数val,在C++中只能取INT及以下的参数类型(char short等),

想string这些复杂的数据类型是不支持的。

谢谢你的阅读!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3