其他程序结构

switch分支结构语句

基本语法

switch(被选变量) {
    case 值1:
        // 代码块1
        break;
    case 值2:
        // 代码块2
        break;
    case 值3:
        // 代码块3
        break;
    default:
        // 默认代码块
}

特点

  • 被选变量必须是整型或枚举类型(能够准确判断相等的类型)
  • case后面必须是常量表达式(确定的值)
  • break可以不写,本质上break用于跳出switch结构,不写break会继续执行下一个case中的代码(穿透执行)
  • default是可有可无,当所有case都不匹配时执行,类似else

if与switch的区别

对比维度if-else ifswitch
条件类型任意布尔表达式(可复杂)只能整型、字符、枚举
比较方式相等、不等、大小比较只能相等比较
执行方式顺序判断,找到真为止直接跳转到匹配的 case
性能O(n) 时间,n 是分支数编译器可优化为 O(1) 跳转表
适用场景条件复杂、有范围判断固定值匹配、分支多
可读性条件复杂时清晰分支多且固定值时清晰

while循环结构语句

基本语法

while(条件) {
    // 循环体
    // 需要改变 条件相关变量,否则可能无限循环
}

执行流程

  1. 检查条件是否为真
  2. 如果条件为真,执行循环体(通常循环体中要有更新条件变量的功能)
  3. 每次执行完循环体,再次检查条件,直到条件为假

示例

// 示例1:基本用法
int i = 1;
while(i <= 5) {
    cout << i << " ";
    i++;  // 重要:更新条件变量
}
// 输出:1 2 3 4 5

// 示例2:无限循环(通常配合 break)
int count = 0;
while(true) {
    count++;
    if(count >= 10) {
        break;  // 跳出循环
    }
}

// 示例3:输入验证
int num;
cout << "请输入1-10的数:";
cin >> num;
while(num < 1 || num > 10) {
    cout << "输入错误,重新输入:";
    cin >> num;
}

do-while循环结构语句

基本语法

do {
    // 循环体
    // 至少执行一次
} while(条件);  // 注意分号!

特点

  • 先执行,后判断:循环体至少会执行一次
  • 适用于需要先执行再检查的情况
  • 末尾必须有分号

for、while与do-while的区别

循环类型执行次数检查时机适用场景
for0次或多次先检查,后执行已知循环次数、遍历
while0次或多次先检查,后执行条件控制、可能不执行
do-while至少1次先执行,后检查必须至少执行一次

理论上,在任何情况下,for和while都能够相互替换,do-while不行