c++switch的一些注意点,以及如何套入循环。

本身的switch-case是没有循环性的,但是我们可以在外面套一层循环。

switch 语句必须遵循下面的规则:

1.switch ()括号中的语句中的 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
2.在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
3.case 后面的数必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
3.当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
4.不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
5.一个 switch 语句可以有一个可选的 default:,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。

#include <iostream>
using namespace std;
 
int main ()
{
   char grade;
   while(1){
   	cin>>grade;
   	switch(grade)
   {
   case 'A' :
      cout << "很棒!" << endl; 
      break;
   case 'B' :
   case 'C' :
      cout << "做得好" << endl;
      break;
   case 'D' :
      cout << "您通过了" << endl;
      break;
   case 'F' :
      cout << "最好再试一下" << endl;
      break;
   default :
      cout << "无效的成绩" << endl;
   }
   system("pause");
   }
   
   return 0;
}

在这里插入图片描述

### C++ 中 `switch` 结合循环的使用 在 C++ 编程中,`switch` 语句可以与各种类型的循环(如 `for`, `while`, 或 `do-while`)结合使用,从而实现复杂的逻辑控制。这种组合能够提高代码的灵活性和效率。 #### 示例:`switch` 与 `for` 循环结合 下面是一个简单的例子,展示了如何通过 `switch` 和 `for` 循环来处理不同情况下的操作: ```cpp #include <iostream> using namespace std; int main() { for (int i = 1; i <= 3; ++i) { // 控制三次迭代 int choice; cout << "请输入选项(1, 2, 或其他): "; cin >> choice; switch (choice) { case 1: cout << "选择了选项 1,在第 " << i << " 次循环中." << endl; break; case 2: cout << "选择了选项 2,在第 " << i << " 次循环中." << endl; break; default: cout << "选择了其他选项,在第 " << i << " 次循环中." << endl; break; } } return 0; } ``` 上述代码实现了多次提示用户输入并根据不同选择执行相应动作的功能[^1]。 #### 示例:`switch` 与 `while` 循环结合 如果需要持续运行直到满足特定条件,则可以将 `switch` 嵌入到 `while` 循环中: ```cpp #include <iostream> using namespace std; int main() { bool continueLoop = true; while (continueLoop) { int option; cout << "请选择一个功能 (1 查看帮助, 2 执行任务, 0 退出): "; cin >> option; switch (option) { case 1: cout << "这是帮助信息..." << endl; break; case 2: cout << "正在执行指定的任务..." << endl; break; case 0: cout << "退出程序..." << endl; continueLoop = false; // 终止循环 break; default: cout << "未知命令,请重新尝试!" << endl; break; } } return 0; } ``` 此示例演示了一个基于菜单的选择机制,其中用户可以选择不同的功能或者退出应用程序[^2]。 #### 关于无 `break` 的行为说明 当 `case` 标签后面没有跟随 `break` 时,程序会继续执行后续的 `case` 条件,即使这些条件并不匹配当前表达式的值。这被称为“贯穿”现象。例如: ```cpp #include <iostream> using namespace std; int main() { char grade; cout << "请输入成绩等级(A-F): "; cin >> grade; switch (grade) { case 'A': cout << "优秀" << endl; case 'B': // 注意这里缺少 break cout << "良好" << endl; case 'C': // 同样缺失 break cout << "合格" << endl; case 'D': cout << "勉强及格" << endl; break; case 'F': cout << "不及格" << endl; break; default: cout << "无效的成绩等级" << endl; } return 0; } // 如果输入 A,将会依次输出 “优秀”, “良好”, “合格”, 和 “勉强及格” ``` 以上代码片段解释了如果没有适当放置 `break`,可能会导致意外的结果[^3]。 ### 总结 通过合理运用 `switch` 和循环结构,可以使程序更加模块化且易于维护。理解每种情况下何时应该加入 `break` 是非常重要的,因为它直接影响着程序流的方向。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ad_m1n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值