C++ 开关 switch语句

#include <iostream.h>
void main(){

char op;
double d1,d2;
cout<<"Enter d1 op d2"<<endl;
cin>>d1>>op>>d2;
switch(op){
double temp;
case '+' :temp=d1+d2;
cout<<d1<<op<<d2<<"="<<temp<<endl;
break;
case '-' :temp=d1-d2;
cout<<d1<<op<<d2<<"="<<temp<<endl;
break;
case '*' :temp=d1*d2;
cout<<d1<<op<<d2<<"="<<temp<<endl;
break;
case '/' :temp=d1/d2;
cout<<d1<<op<<d2<<"="<<temp<<endl;
break;
default:cout<<"error!\n";
}
}
### C++ 中 `switch` 语句的使用方法 在 C++ 编程语言中,`switch` 语句是一种多分支选择结构,适用于处理一组离散值的情况。它通过比较表达式的值与各个 `case` 的常量值来决定执行哪一段代码块[^1]。 #### 基本语法 以下是 `switch` 语句的标准形式: ```cpp switch (expression) { case constant-expression: statement(s); break; case constant-expression: statement(s); break; ... default: statement(s); } ``` - **`expression`**: 这是一个整型或字符型表达式,其值会被用来与各 `case` 后面的常量进行逐一比较。 - **`constant-expression`**: 每个 `case` 关键字后面跟着一个常量表达式,表示要匹配的具体值。 - **`statement(s)`**: 当某个 `case` 的值与 `expression` 的值相等时,对应的代码块被执行。 - **`break`**: 用于终止当前 `case` 并跳出整个 `switch` 结构。如果省略 `break`,程序会继续向下执行后续的 `case` 或 `default` 部分(称为“贯穿”行为)。 - **`default`**: 可选部分,当没有任何 `case` 匹配到 `expression` 的值时,默认情况下执行此部分代码。 #### 示例:打印一位数中文数字 下面展示了一个完整的示例,演示如何利用 `switch` 打印出给定的一位阿拉伯数字所对应的一个汉字名称。 ```cpp #include <iostream> using namespace std; int main() { int num = 6; // 设定测试数值 switch (num) { // 开始切换依据变量 'num' case 0: cout << "零" << endl; break; case 1: cout << "一" << endl; break; case 2: cout << "二" << endl; break; case 3: cout << "三" << endl; break; case 4: cout << "四" << endl; break; case 5: cout << "五" << endl; break; case 6: cout << "六" << endl; break; case 7: cout << "七" << endl; break; case 8: cout << "八" << endl; break; case 9: cout << "九" << endl; break; default: cout << "数字不在0-9之间!" << endl; break; } return 0; } ``` 在这个例子中,我们定义了整型变量 `num` 初始化为6,并将其作为 `switch` 表达式的参数。随后,在一系列可能的情况下寻找等于该输入值的情形并输出相应的文字描述;如果没有找到任何符合条件,则触发默认选项提示错误消息[^1]。 注意,尽管这里只展示了简单的单层嵌套逻辑,实际开发过程中也可以创建更加复杂的多层次或者带额外计算操作的开关情况分析流程。 ### 注意事项 虽然 `switch` 提供了一种优雅的方式来替代多重连续的 `if...else if...else` 构造,但在某些场景下仍需谨慎考虑设计上的取舍。例如,过多重复性的简单映射关系可能会使维护变得困难,此时可以探索其他数据驱动的方法如数组查找表等代替硬编码的方式提高可读性和扩展性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值