开发手册 欢迎您!
软件开发者资料库

C++ switch case 语句

C++中switch条件语句也是一种很常用的选择语句,和if条件语句不同,它只能针对某表达式的值做出判断,从而决定程序执行哪一段代码。

1、switch 语句

使用switch语句选择要执行的许多代码块之一。

语法

switch(expression) {  case x:    // 代码块    break;  case y:    // 代码块    break;  default:    // 代码块}

switch case 语句有如下规则:

1)switch语句中使用的表达式必须具是intenum类型,否则如float等其他数据类型是无法通过的编译的,因为编译器需要switch后面的语句和case后面的值精确匹配,而计算机无法精确表达一个float数据类型。

2)switch可以任意个case语句(包括没有), 值和语句之间使用:分隔。

3)case后面的值必须是int常量值,或者返回结果为int类型的表达式,以下代码无法编译通过。

4)当switch后面的变量值和case后面的常量值匹配相等后,case后面的代码将会被执行,直到break语句被执行后跳出switch代码块

5)break不是必须的,如果没有break,则执行完当前case的代码块后会继续执行后面case代码块的内容,直到执行break才可以退出

6)switch有一个默认的情况,我们用default关键词表示,当switch后面的变量和所有case后面的常量都不匹配的情况下,默认执行default后面的语句

例如:

#include using namespace std;int main() {    cout << "Please input a number(1-100):" << endl;    int grade;    cin >> grade;    switch (grade / 10) {        case 10:        case 9:            cout << "A\n";            break;        case 8:        case 7:            cout << "B\n";            break;        case 6:        case 5:            cout << "C\n";            break;        default:            cout << "default\n";            break;    }    return 0;}

2、break关键字

当C++代码执行到break关键字时,它将跳出switch块。

#include using namespace std;int main() { char c='\0'; for(int i=1;i<=4;i++){ switch(i){ case 1:c='J'; cout << c; //break; case 2:c='e'; cout << c; break; case 3:c='p'; cout << c; //break; cout << "好\n";//不匹配都会执行 } }/*当i=1时运行结果是 Je 当i=2时 运行结果是 e 当i是3是运行结果是 p 好 当i是4时运行结果是好*/ }

注意: continue 不能用于switch语句

3、default关键字

default关键字指定在没有case 匹配的情况下要运行的一些代码:

例如:

int day = 4;switch (day) {  case 6:    cout << "学习python\n";    break;  case 7:    cout << "学习java\n";    break;  default:    cout << "wonhero\n";}// 输出 "wonhero"

注意:如果default语句用作switch块中的最后一条语句,则不需要break