C++ Primer Plus第五章笔记

目录

1.for循环

2.表达式和语句

3.递增运算符和递减运算符

4.组合赋值运算符

5.复合语句

6.逗号运算符

7.关系运算符

8.while循环

9.do while循环

10.字符输入方法 get()

11.嵌套循环和二维数组

1.for循环

        什么是for循环:for循环是一种常用的循环结构,用于重复执行一段代码块,直到满足某个条件

1.1 for循环的组成部分

1设置初始值

2执行测试,看看循环是否应当继续进行

3执行循环操作

4更新用于测试的值

注意:循环只执行一次初始化,通常,程序使用该表达式将变量设置为起始值,然后用该变量计算循环周期

2.表达式和语句

for循环的通用格式为:

for (initialization; condition; increment/decrement) {
  // code to be executed
}

        其中,initialization是初始化语句,一般用来定义一个计数器变量并赋初值;condition是条件语句,用来判断计数器是否满足循环条件,如果满足,则执行循环语句;increment/decrement是增量/减量语句,用来改变计数器的值,使其符合循环条件,同时也是循环迭代的方式之一。

3.递增运算符和递减运算符

  • 递增/递减:增加/减少一个单位

  • 前缀和后缀的区别

    • 前缀递增/递减:表示操作符(++/--)位于变量或表达式的前面

    先执行运算,再生成值。

    • 后缀递增/递减:表示操作符(++/--)位于变量或表达式的后面

    先生成值,在执行运算。

将递增 / 递减运算符用于指针时,把指针增加/减少其指向的数据类型占用的字节数。

        这两个版本对操作数的影响是一样的,但是影响的时间不同。这就像清理草坪之前付钱和清理草坪之后付钱的最终结果是一样的,但支付钱的时间不同。

4.组合赋值运算符

就是合并了算术运算符和赋值操作的运算符。

操作符 作用(L为左操作数,R为右操作数)
+= L+R赋给L
-= L-R赋给L
*= L*R赋给L
/= L/R赋给L
%= L%R赋给L

5.复合语句

        C++中的复合语句也被称为代码块,它由一组语句组成,用花括号{ }括起来。复合语句可以作为单个语句出现在程序中的任何位置。

        复合语句的主要作用是将多条语句组合在一起,形成一个作用域。在复合语句中定义的变量只在该复合语句的作用域内可见,超出该作用域就无效了。

6.逗号运算符

        逗号运算符(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。

        需要注意的是,逗号运算符并不经常使用,因为它可能会导致代码可读性降低。在实际编程中,建议尽量避免复杂的逗号运算符的使用,以提高代码的清晰度和可维护性。逗号运算符通常用于一些特定场景,如循环迭代或初始化语句。

7.关系运算符

        关系运算符是用于比较两个值之间关系的运算符,它们返回一个布尔值(true或false)来表示比较结果的真假。在C++中,常用的关系运算符包括以下几种:

  1. 相等运算符(==):用于比较两个值是否相等,如果相等则返回true,否则返回false。

  2. 不等运算符(!=):用于比较两个值是否不相等,如果不相等则返回true,否则返回false。

  3. 大于运算符(>):用于比较左边的值是否大于右边的值,如果满足条件则返回true,否则返回false。

  4. 小于运算符(<):用于比较左边的值是否小于右边的值,如果满足条件则返回true,否则返回false。

  5. 大于等于运算符(>=):用于比较左边的值是否大于或等于右边的值,如果满足条件则返回true,否则返回false。

  6. 小于等于运算符(<=):用于比较左边的值是否小于或等于右边的值,如果满足条件则返回true,否则返回false。

8.while循环

        while循环是没有初始化 和 更新部分 的for循环。只有测试条件 和 循环体

while循环的语法格式:

while(test-condition)
    loop-body

9.do while循环

        do while循环是出口条件循环,这意味着循环将首先执行循环体,然后再判定测试表达式,决定是否继续执行循环。
 

do {
  // 循环体
} while (条件);

        在执行过程中,先会执行一次循环体,然后再判断条件是否成立,如果成立则继续执行循环,否则跳出循环。

        和while循环一样,do while循环也可以用来处理不确定次数的循环,但它保证了循环体至少会被执行一次。

10.字符输入方法 get()

        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 为止,并将读取到的每个字符逐个输出到标准输出流(通常是终端窗口)。

11.嵌套循环和二维数组

        嵌套循环和二维数组是 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 列的整数型二维数组,并对其进行初始化。初始化值按照行优先的顺序赋值,也就是先给第一行赋值,然后给第二行赋值,最后给第三行赋值。

     

你可能感兴趣的:(#,C++,Primer,Plus,c++,笔记,开发语言)