基础:
选择语句☑️❌
if语句
if(a)
{
//a 判断表达式,如果a为真那就执行语句
}
if语句还可以与else结合使用
if(a)
{
//a 判断表达式,如果a为真那就执行语句
}
else if(b)
{
//如果a为假,b为真那就执行语句
}
else
{
如果a和b都为假,那就执行该语句
}
switch语句
等价与一个if-else语句
switch (option)
//option只能是char类型或者是int类型则case后面只能是数字或者是'字符'例如:'a'
{
case 1:
// 如果option等于1,执行这里的代码
break; // 可选,用于避免执行下一个case的代码
case 2:
// 如果option等于2,执行这里的代码
break;
// ... 可以有更多的case
default:
// 如果option不匹配任何case,执行这里的代码
break; // 可选
}
循环🔄
while 语句
while(表达式)
{
// 循环体,这里是要重复执行的代码
}
如果表达式的值为真,执行循环体
#include <iostream>
int main()
{
int i{0};
while (i < 5)
{
std::cout << i << std::endl;
++i;
}
return 0;
}
do while
至少执行一次,如果while后的表达式为真,循环体将继续执行
do-whlie的while要加;while语句的while不加;
#include <iostream>
int main()
{
int i = 66;
do
{
std::cout << i << std::endl;
++i;
} while (i < 5);
return 0;
}
//执行一次
for语句
for(表达式1;表达式2;表达式3)
{
// 循环体,这里是要重复执行的代码
}
表达式1:初始化循环控制变量。
表达式2:循环条件,如果为真则执行循环体,否则跳出循环。
表达式3:每次循环迭代后更新循环控制变量的表达式。
表达式如果有多个语句那就用逗号(,)隔开
#include <iostream>
int main()
{
for (int i = 0; i < 5; ++i)
{
std::cout << i << std::endl;
}
return 0;
}
//该循环四次
进阶:
遍历
指的是按照一定的顺序访问容器(如数组、向量、列表、映射等)或数据结构的每个元素,并对每个元素执行某种操作。
我们可以通过遍历去进行写循环语句
范围for循环🔄
是C++11引入的一种循环结构,它允许程序员更简洁地遍历容器(如数组、向量、列表等)或任何支持迭代器对象的元素。范围for循环会自动处理迭代器的创建、初始化和递增,使代码更加清晰易读。
for (declaration : expression)
{
// 循环体
}
declaration:用于声明循环变量,该变量将用于存储当前元素。
expression:表示要遍历的容器或范围。
这通常是一个容器对象
(如std::vector、std::array、std::list等)或任何返回迭代器的表达式。
eg:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用范围for循环遍历vector
for ( auto element : vec) {
std::cout << element << ' ';
}
std::cout << '\n';
return 0;
}
//输出的结果是:1 2 3 4 5
运用std::views::iota进行循环
是 C++20 引入的一个视图(view)适配器,它生成一个从给定起始值开始的连续整数序列。
视图是 C++20 的一个新特性,它们提供了一种惰性的、可组合的方式来处理容器或范围。
std::views::iota 是生成一个从给定起始值开始的整数序列,每次递增一个固定的步长(默认为 1)。
这对于生成一系列连续的整数特别有用。
#include<iostream>
#include<ranges>
int main()
{
int sum{};
for(auto i:std::views::iota(1,101))
{
sum+=i;
}
std::cout<<sum<<std::endl;
return 0;
}
//输出的结果是:5050
std::views::iota(a,b)
在括号里的两个参数:起始值和结束值(不包括)