【C++】学习笔记二十五——switch语句

switch语句

通用格式:

switch (integer_expression)       //整数表达式
{
    case label1 : statement;
    case label2 : statement;
    ...
    default : statement;         //可选
}

程序6.10

#include<iostream>
using namespace std;
void showmenu();
void report();
void comfort();
int main()
{
    showmenu();
    int choice;
    cin>>choice;
    while(choice!=5)
    {
        switch(choice)
        {
            case 1 : cout <<"\a\n";
                    break;
            case 2 : report();
                    break;
            case 3 : cout << "The boss was in all day.\n";
                    break;
            case 4 : comfort();
                    break;
            default : cout << "That's not a choice.\n";
        }
    showmenu();
    cin>>choice;
    }
    cout<<"Bye!\n";
    return 0;
}

void showmenu()
{
    cout<<"Please enter 1, 2, 3, 4, or 5:\n"
    "1) alarm       2) report\n"
    "3) alibi       4) comfort\n"
    "5) quit\n";
}
void report()
{
    cout <<"It's been an excellent week for bussiness.\n"
    "Sales are up 120%. Expenses are down 35%.\n";
}
void comfort()
{
    cout<<"Your employees think you are the finest CEO\n"
    "in the industry. The board of directors think\n"
    "you are the finest CEO in the industry.\n";
}

将枚举量当做标签

程序6.11

#include<iostream>
//creat named constants for 0-6
enum{red,orange,yellow,green,blue,violet,indigo};

int main()
{
    using namespace std;
    cout << "Enter color code (0-6): ";
    int code;
    cin >> code;
    while (code >= red&&code <= indigo)
    {
        switch (code)
        {
            case red:           cout << "Her lips were red.\n"; break;
            case orange:        cout << "Her hair was orange.\n"; break;
            case yellow:        cout << "Her shoes were yellow.\n"; break;
            case green:     cout << "Her nails were green.\n"; break;
            case blue:          cout << "Her sweatsuit was blue.\n"; break;
            case violet:        cout << "Her eyes were violet.\n"; break;
            case indigo:        cout << "Her mood was indigo.\n"; break;
        }
        cout << " Enter color code (0-6): ";
        cin >> code;
    }
    cout << "Bye\n";
    system("pause");
    return 0;
}

switch 和 if else

  switch语句和if else语句都允许从选项中进行选择,相比之下,if else更通用,他可以处理取值范围。
  然而,switch并不是为处理取值范围而设计的,switch语句中的每一个case标签都必须是一个单独的值,这个值必须是整数(包括char)。因此switch无法处理浮点测试。
  如果所有的选项都可以使用整数常量来标识,则可以使用switch语句或if else语句。由于switch语句是专门为这种情况设计的,因此,如果选项超过两个,为了缩短代码长度和提高运行速度,应使用switch。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值