C/C++常识

一、

bool 是 C++ 布尔类型,用来表示逻辑值,只有两种取值:

  • true:真(等价数值 1
  • false:假(等价数值 0

二、

逻辑运算符

运算符 名称 格式 规则
! 逻辑非(取反) !a a 为 true → false;a 为 false → true
&& 逻辑与 a && b 两边全 true,结果才 true;否则 false
` ` 逻辑或 `a b` 任意一边 true,结果就 true;全 false 才 false

关键特性:短路求值(必考)

  1. a && b:如果 a 是 false,不会执行 b
  2. a || b:如果 a 是 true,不会执行 b

三、

关系(比较)运算符 → 返回 bool

> < >= <= == != 表达式运算结果一定是 bool

四、算术运算符(+ - * / %

算术运算得到数字 ,数字本身不是 bool ,只有在需要 bool 的地方才隐式转换: 转换规则复习:0→false,所有非 0(正数、负数)→true

五、

assert断言宏(不是函数!),定义在头文件:

复制代码
#include <cassert>

作用:检测一个条件是否成立

  • 如果括号内表达式 == true:什么都不做,程序继续运行
  • 如果括号内表达式 == false:程序直接终止,打印报错信息(文件名、行号、失败条件)

六、

一、while 循环

语法

复制代码
while(条件表达式)
{
    循环体;
}
  1. 先判断条件(表达式隐式转 bool)
  2. 条件为 true → 执行循环体
  3. 执行完回到开头再次判断条件
  4. 条件 false → 直接跳出循环

特点:先判断,后执行。条件不成立,循环体一次都不运行。

复制代码
int i = 1;
while(i <= 10)
{
    cout << i << " ";
    i++; // 一定要更新变量,否则死循环!
}

二、do while 循环

复制代码
do
{
    循环体;
}while(条件); // 末尾分号不能丢!

执行流程:

  1. 先执行一次循环体
  2. 再判断条件
  3. true:继续循环;false:退出

特点:先执行,后判断。循环体至少执行 1 次!

复制代码
int i = 1;
do
{
    cout << i << " ";
    i++;
}while(i <= 10);

三、for 循环(最常用)

复制代码
for(表达式1; 表达式2; 表达式3)
{
    循环体;
}
  • 表达式 1:初始化(只执行 1 次)
  • 表达式 2:循环条件(判断,bool)
  • 表达式 3:每次循环结束后执行(更新变量)

执行顺序: 初始化 → 判断条件 → 循环体 → 更新 → 判断条件 → 循环体......

复制代码
// i从1到10
for(int i = 1; i <= 10; i++)
{
    cout << i << " ";
}

灵活写法(三个表达式都可以省略)

复制代码
for(;;) // 等价 while(true) 死循环
{
    
}

四、循环控制关键字 break /continue

1. break

直接跳出当前整个循环,循环彻底结束

复制代码
for(int i = 1; i <= 10; i++)
{
    if(i == 5)
        break;
    cout << i; // 输出1 2 3 4
}

2. continue

终止本次循环,立刻进入下一轮条件判断

复制代码
for(int i = 1; i <= 10; i++)
{
    if(i == 5)
        continue;
    cout << i; // 输出1234678910,跳过5
}

⚠️ 注意:continuewhile 中使用时,要小心变量更新位置,防止死循环!

复制代码
// 危险写法!i++ 在continue后面,永远执行不到
while(i <= 10)
{
    if(i == 5) continue;
    i++; 
}
相关推荐
anew___4 小时前
蜂鸣器播放音乐——让 Arduino 唱出旋律
c++·stm32·单片机·嵌入式硬件·c
stolentime6 小时前
洛谷P10515 转圈题解
c++·算法·数学建模·贪心算法
tdtsmt7 小时前
穿戴硬件量产工艺实录:天地通电子智能手表主板 SMT 贴片案
c++
m0_7345717610 小时前
深入理解C++ 析构函数<一>基本概念
开发语言·c++
t-think11 小时前
C++ string 类(上)—— string类初识与常用接口详解
开发语言·c++
cpp_learners11 小时前
C++ 实现责任链模式(Chain of Responsibility):从一堆 if-else 到可插拔的处理管道
开发语言·c++·责任链模式
郝学胜_神的一滴11 小时前
C++11 工程级应用 12:编译期类型魔法,干掉重复与臃肿的代码
c++·visual studio
David猪大卫13 小时前
【C++修炼】哈希表的实现
数据结构·c++·笔记·学习·算法·哈希算法·散列表
广州山泉婚姻13 小时前
列表初始化:C++11全新初始化体系
c++·人工智能
莫生灬灬13 小时前
灵码 LingBuilder:用中文写代码,确定性生成真实 C++ 工程(开源)
c++·开源·mfc