目录
1.for循环
2.表达式和语句
3.递增运算符和递减运算符
4.组合赋值运算符
5.复合语句
6.逗号运算符
7.关系运算符
8.while循环
9.do while循环
10.字符输入方法 get()
11.嵌套循环和二维数组
什么是for循环:for循环是一种常用的循环结构,用于重复执行一段代码块,直到满足某个条件
1设置初始值
2执行测试,看看循环是否应当继续进行
3执行循环操作
4更新用于测试的值
注意:循环只执行一次初始化,通常,程序使用该表达式将变量设置为起始值,然后用该变量计算循环周期
for循环的通用格式为:
for (initialization; condition; increment/decrement) {
// code to be executed
}
其中,initialization是初始化语句,一般用来定义一个计数器变量并赋初值;condition是条件语句,用来判断计数器是否满足循环条件,如果满足,则执行循环语句;increment/decrement是增量/减量语句,用来改变计数器的值,使其符合循环条件,同时也是循环迭代的方式之一。
递增/递减:增加/减少一个单位
前缀和后缀的区别
操作符(++/--)
位于变量或表达式的前面
。先执行运算,再生成值。
操作符(++/--)
位于变量或表达式的后面
。先生成值,在执行运算。
将递增 / 递减运算符用于指针时,把指针增加/减少其指向的数据类型占用的字节数。
这两个版本对操作数的影响是一样的,但是影响的时间不同。这就像清理草坪之前付钱和清理草坪之后付钱的最终结果是一样的,但支付钱的时间不同。
就是合并了算术运算符和赋值操作的运算符。
操作符 | 作用(L为左操作数,R为右操作数) |
---|---|
+= | 将L+R 赋给L |
-= | 将L-R 赋给L |
*= | 将L*R 赋给L |
/= | 将L/R 赋给L |
%= | 将L%R 赋给L |
C++中的复合语句也被称为代码块,它由一组语句组成,用花括号{ }括起来。复合语句可以作为单个语句出现在程序中的任何位置。
复合语句的主要作用是将多条语句组合在一起,形成一个作用域。在复合语句中定义的变量只在该复合语句的作用域内可见,超出该作用域就无效了。
逗号运算符(comma operator)是C++中的一种运算符,用逗号表示(,)。逗号运算符允许在一个表达式中同时执行多个操作,并返回最后一个操作的结果。
逗号运算符具有以下特点:
1. 使用逗号运算符可以在同一语句中连续执行多个表达式,并按顺序求值。
2. 表达式中的每个逗号将左边的表达式求值后丢弃,并返回右边表达式的结果。
3. 逗号运算符的优先级是最低的,意味着在表达式求值时通常会优先考虑其他运算符。
以下是一个简单的示例:
int main() {
int a = 5, b = 10, c;
c = (a++, b++, a + b); // 使用逗号运算符在同一语句中执行多个操作
cout << "c = " << c << endl; // 输出c的值,结果是15
return 0;
}
在上面的示例中,我们使用逗号运算符在同一语句中执行了三个操作:a的值加1(a++),b的值加1(b++),以及a和b的和(a + b)。最后一个操作的结果是15,并赋值给变量c。
需要注意的是,逗号运算符并不经常使用,因为它可能会导致代码可读性降低。在实际编程中,建议尽量避免复杂的逗号运算符的使用,以提高代码的清晰度和可维护性。逗号运算符通常用于一些特定场景,如循环迭代或初始化语句。
关系运算符是用于比较两个值之间关系的运算符,它们返回一个布尔值(true或false)来表示比较结果的真假。在C++中,常用的关系运算符包括以下几种:
相等运算符(==):用于比较两个值是否相等,如果相等则返回true,否则返回false。
不等运算符(!=):用于比较两个值是否不相等,如果不相等则返回true,否则返回false。
大于运算符(>):用于比较左边的值是否大于右边的值,如果满足条件则返回true,否则返回false。
小于运算符(<):用于比较左边的值是否小于右边的值,如果满足条件则返回true,否则返回false。
大于等于运算符(>=):用于比较左边的值是否大于或等于右边的值,如果满足条件则返回true,否则返回false。
小于等于运算符(<=):用于比较左边的值是否小于或等于右边的值,如果满足条件则返回true,否则返回false。
while循环是没有初始化
和 更新部分
的for循环。只有测试条件
和 循环体
。
while循环的语法格式:
while(test-condition)
loop-body
do while循环是出口条件循环,这意味着循环将首先执行循环体,然后再判定测试表达式,决定是否继续执行循环。
do {
// 循环体
} while (条件);
在执行过程中,先会执行一次循环体,然后再判断条件是否成立,如果成立则继续执行循环,否则跳出循环。
和while循环一样,do while循环也可以用来处理不确定次数的循环,但它保证了循环体至少会被执行一次。
get() 是 C++ 中的一个字符输入方法,它可以用来从输入流中读取一个字符,并且不会忽略空格、制表符和换行符等空白字符。
该函数会从标准输入流(通常是键盘输入)中读取下一个字符,并将其作为返回值返回。如果输入流中没有字符可供读取,那么该函数会返回 EOF。
get() 函数还可以带一个参数,指示字符被读取后是否应该保留在输入流中。如果该参数为 true,那么读取的字符会保留在输入流中,以便后续函数可以再次读取它。如果该参数为 false 或者省略不写,那么读取的字符将从输入流中被清除,以便下一次函数调用时不会重复读取。
下面是一个使用 get() 函数读取输入流中的字符的示例代码:
#include
using namespace std;
int main() {
char ch;
cout << "请输入一个字符串:" << endl;
while ((ch = cin.get()) != EOF) {
cout << ch;
}
return 0;
}
该程序会从标准输入流中读取字符,直到读取到 EOF 为止,并将读取到的每个字符逐个输出到标准输出流(通常是终端窗口)。
嵌套循环和二维数组是 C++ 语言中常用的概念,它们通常一起使用,以便对多维数组进行遍历和处理。
在C++语言中,二维数组是由多个一维数组组成的,一般用来表示表格数据、图像等二维结构。在定义二维数组时,需要使用两个方括号来指定数组的行数和列数。例如:
int matrix[3][4];
这个定义语句表示定义了一个有 3 行 4 列的整数型二维数组。其中,行号是从 0 到 2,列号是从 0 到 3。我们可以使用双重循环来遍历这个二维数组:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
上述代码中,外层循环用来控制行号,内层循环用来控制列号。这样,就可以遍历整个二维数组。对于每个二维数组元素,我们可以通过两个下标来访问它。
二维数组还可以被初始化,在定义时指定初始值。例如:
int matrix[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
这个定义语句定义了一个有 3 行 4 列的整数型二维数组,并对其进行初始化。初始化值按照行优先的顺序赋值,也就是先给第一行赋值,然后给第二行赋值,最后给第三行赋值。