复习--C++ 程序基础笔记2

C++程序基础:流程控制详解

一、程序基本结构

1. 顺序结构

  • 程序从 main 函数开始执行

  • 按代码书写顺序逐条执行

  • 执行到 main 函数的 return 0 结束

2. 逻辑表达式

关系运算符

<    >    <=    >=    ==    !=
  • 表达式结果:真(true/1) 或 假(false/0)

  • 防错技巧:常量放左边

if (5 == a)  // 如果误写为 5 = a 会编译报错

逻辑运算符

逻辑与 (&&) - 真值表
左操作数右操作数结果
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse
逻辑或 (||) - 真值表
左操作数右操作数结果
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse
逻辑非 (!)
!true  = false
!false = true
短路特性
int a = 0, b = 0;
a++ && b++;    // 左侧为0,右侧不执行
++a || b++;    // 左侧为1,右侧不执行

三目运算符

表达式1 ? 表达式2 : 表达式3;
  • 结合方向:自右至左

  • 表达式1为真 → 返回表达式2的值

  • 表达式1为假 → 返回表达式3的值

二、分支结构

1. if 分支

简单分支

if (表达式) {
    语句块1;
} else {
    语句块2;
}

阶梯分支

if (表达式1) {
    语句块1;
} else if (表达式2) {
    语句块2;
} else {
    语句块3;
}

嵌套分支

if (表达式1) {
    语句块1;
    if (表达式2) {
        语句块2;
    } else {
        语句块3;
    }
} else {
    语句块4;
}

注意事项

  • if 后面不要跟分号(逻辑错误)

  • if 可单独使用,else 必须配合 if

  • 不加大括号默认控制一句代码

  • 避免深层次嵌套(建议不超过5层)

2. switch 分支

基本语法

switch (整型表达式) {
    case 常量1: 
        语句块1;
        break;
    case 常量2: 
        语句块2;
        break;
    default:    
        语句块3;
}

嵌套switch

switch (整型表达式1) {
    case 常量1: 
    case 常量2: 
        switch (整型表达式2) {
            case 常量3: 
                语句块1;
                break;
            default:    
                语句块2;
        }
        break;
    default:    
        语句块3;
}

重要特性

  • switch 后必须是整型表达式

  • case 后必须是常量

  • 只进行一次判断,顺序执行直到遇到 break

  • 里层 switch 结束后不加 break 会继续执行外层代码

三、循环结构

1. 为什么需要循环

  • 重复执行功能代码

  • 提高代码复用性

  • 处理重复性任务和批量数据

2. 循环三要素

  1. 循环变量初始化 - 循环开始前的准备

  2. 循环条件检测 - 判断是否继续执行

  3. 循环变量更新 - 避免死循环

3. 四种循环结构

while 循环

while (表达式) {
    循环体语句;
}

特点:先判断条件,再执行循环体

示例

int i = 1;          // 初始化
while (i <= 5) {    // 条件检测
    cout << "当前值: " << i << endl;
    i++;            // 变量更新
}

死循环形式

while (1) {
    // 循环体
    if (退出条件) break;
}

do-while 循环

do {
    循环体语句;
} while (表达式);

特点:先执行循环体,再判断条件(至少执行一次)

示例

int j = 1;
do {
    cout << "do-while循环 - 当前值: " << j << endl;
    j++;
} while (j <= 5);

for 循环

for (表达式1; 表达式2; 表达式3) {
    循环体语句;
}
执行流程
  1. 表达式1 - 循环初始化(执行一次)

  2. 表达式2 - 条件检测(真→执行循环体,假→结束)

  3. 执行循环体

  4. 表达式3 - 循环变量更新

  5. 回到步骤2

示例
for (int k = 1; k <= 5; k++) {
    cout << "for循环 - 当前值: " << k << endl;
}
死循环形式
for (;;) {
    // 循环体
    if (退出条件) break;
}

goto 循环

标签名:
    // 代码
goto 标签名;

特点:无条件跳转,不推荐在应用层使用

示例

int m = 1;
loop:
if (m <= 5) {
    cout << "goto循环 - 当前值: " << m << endl;
    m++;
    goto loop;
}

4. 循环控制语句

break 语句

  • 立即结束整个循环

  • 用于提前退出循环

for (int i = 1; i <= 10; i++) {
    if (i > 7) {
        break;  // 当i>7时退出循环
    }
    cout << i << " ";
}
// 输出: 1 2 3 4 5 6 7

continue 语句

  • 结束本次循环,进入下一次循环

  • 跳过循环体中剩余代码

for (int i = 1; i <= 5; i++) {
    if (i % 2 == 0) {
        continue;  // 跳过偶数
    }
    cout << i << " ";
}
// 输出: 1 3 5

5. 循环嵌套

基本概念:外层循环运行一次,内层循环运行一遍

九九乘法表示例
for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        cout << j << "×" << i << "=" << i * j << "\t";
    }
    cout << endl;
}

6. 循环结构选择指南

循环类型适用场景特点
for循环次数确定结构清晰,三要素集中
while循环次数不确定条件检测在前
do-while至少执行一次条件检测在后
范围for容器遍历语法简洁(C++11)

最佳实践建议

  • 明确循环次数 → 使用 for 循环

  • 循环次数不确定 → 使用 while 循环

  • 需要先执行后判断 → 使用 do-while 循环

  • 遍历容器元素 → 使用基于范围的 for 循环

  • 避免使用 → goto 循环(特殊情况除外)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值