知识点锦集(六)

七.switch语句

  • 基本格式

    • switch语句基本格式如下。其中case中的语句和break、default中的语句均可省略。
    • 表达式——称为“条件表达式”,用作判断条件,取值为整型、字符型、布尔型或枚举型。 注意,不能是float型和double型,存在误差。
    • 常量表达式——由常量构成,取值类型与表达式相同。
    • 语句——可以是一条语句也可以是一组语句。
    switch (表达式) {
        case 常量表达式1:
                //******语句****
                break;
        ......
        case 常量表达式n:
                //******语句****
                break;
        default:
                //******语句****
    }
  • 执行流程

    • 根据表达式的值,在常量表达式中找到与之相等的分支,确定执行入口点;
    • 顺序执行该分支的语句序列,直到遇到break语句或switch语句的“}”为止。
    • 当表达式的值与所有常量表达式的值均不相等时,若有default分支,则执行其语句,否则跳出switch语句,执行后续语句。
  • 注意

    • 一般必须在case语句结尾添加break语句。
    • 如果在switch中省略了break语句,那么匹配的case值后的所有情况(包括default情况)都会被执行。
  • 情况一:按标准书写

#include<iostream>
using namespace std;

int main(int argc, char* argv[]) {
    //************************第一种情况*******************
    int i = 10;
    switch (i) {
    case 0:
        cout << "join 0..." << endl;
        break;
    case 5:
        cout << "join 5..." << endl;
        break;
    case 10:
        cout << "join 10..." << endl;
        break;
    default:
        cout << "join default..." << endl;
        break;
    }
    getchar();
    return 0;
}
//结果:join 10...
  • 情况二:遇break停止
#include<iostream>
using namespace std;

int main(int argc, char* argv[]) {
    //************************第二种情况*******************
    int i = 10;
    switch (i) {
    case 0:
        cout << "join 0..." << endl;
        break;
    case 5:
        cout << "join 5..." << endl;
        break;
    case 10:
        cout << "join 10..." << endl;
    default:
        cout << "join default..." << endl;
    }
    getchar();
    return 0;
}
//执行结果:join 10...   join default..."
#include<iostream>
using namespace std;

int main(int argc, char* argv[]) {
    //************************第二种情况*******************
    int i = 5;
    switch (i) {
    case 0:
        cout << "join 0..." << endl;
        break;
    case 5:
        cout << "join 5..." << endl;
    case 10:
        cout << "join 10..." << endl;
        break;
    case 15:
        cout << "join 15..." << endl;
    default:
        cout << "join default..." << endl;
    }
    getchar();
    return 0;
}
//执行结果:join 5...  join 10...
  • 情况三:default的位置
#include<iostream>
using namespace std;

int main(int argc, char* argv[]) {
    //************************第三种情况*******************
    int i = 15;
    switch (i) {
    default:
        cout << "join default..." << endl;
    case 0:
        cout << "join 0..." << endl;
        break;
    case 5:
        cout << "join 5..." << endl;
    case 10:
        cout << "join 10..." << endl;
        break;
    case 15:
        cout << "join 15..." << endl;
    }
    getchar();
    return 0;
}
//执行结果:join 15...
#include<iostream>
using namespace std;

int main(int argc, char* argv[]) {
    //************************第三种情况*******************
    int i = 20;
    switch (i) {
    default:
        cout << "join default..." << endl;
    case 0:
        cout << "join 0..." << endl;
        break;
    case 5:
        cout << "join 5..." << endl;
    case 10:
        cout << "join 10..." << endl;
        break;
    case 15:
        cout << "join 15..." << endl;
    }
    getchar();
    return 0;
}
//执行结果:join default...  join 0...

八.枚举变量的值如何计算

  • 在枚举中,某个枚举变量的值默认为前一个变量的值加1,而如果第一个枚举变量没有被赋值,则默认值为0。
#include<iostream>
using namespace std;

int main(int argc, char* argv[]) {
    enum{a,b=5,c,d=4,e};
    cout << a << " " << b << " " << c << " " << d << " " << e << endl;
    getchar();
    return 0;
}
//执行结果:0 5 6 4 5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值