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
}

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

复制代码
// 危险写法!i++ 在continue后面,永远执行不到
while(i <= 10)
{
    if(i == 5) continue;
    i++; 
}
相关推荐
大侠归来6 分钟前
C 语言 | 在函数中操作数组
c语言·c++·算法
朝朝辞暮i6 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
郑同学的笔记7 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
随意起个昵称8 小时前
【背包dp】输出方案路径
c++·动态规划
朝朝辞暮i8 小时前
C++ 第 27 课:智能指针 shared_ptr
开发语言·c++·算法
by209999 小时前
学会使用std::string类,并理解其内部是如何管理字符串的详细阐述(上)
c++·笔记·字符串·类和对象·string
沙漠之主9 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
朝朝辞暮i9 小时前
C++ 第 29 课:回调函数 Callback
开发语言·c++·算法
kaixin_learn_qt_ing9 小时前
C++多态实现原理
c++
无名猿10 小时前
unique_ptr 完全指南:独占所有权与零开销
c++·性能优化·内存管理·标准库·现代c++