第5章 循环和关系表达式
5.1 for循环
- for循环的步骤:
- 1.设置初始值;
- 2.执行测试,看循环是否应当继续执行;
- 3.执行循环操作。
- 4.更新用于测试的值。
5.1.5 递增运算符(++)和递减运算符(--)
int x = 5;
int y = ++x;//y=6,x=6
int z = 5;
int y= z++;//y=5,z=6
z++:是使用z的当前值计算表达式,然后将z的值加1;
++x:是先将x的值加1,然后使用新的值来计算表达式。
5.1.8递增/递减运算符和指针
前缀递增、前缀递减和解除引用运算符(*)的优先级相同,以从右到左的方式进行组合。后缀递增和后缀递减的优先级相同,但比前缀运算符的优先级高。
double arr[5] = {21.1, 32.8, 23.4, 45.2, 37.4};
double *pt = arr;
++pt; // pt = &arr[1]
double x = *++pt; // x = 23.4
//先将++应用于pt,然后将*应用于递增后的pt
double y = ++*pt; // y = 24.4
//先取得pt指向的值,然后将该值加1
double z = (*pt)++; // z = 25.4
//先对指针解除引用,获得该值,然后将该值加1
x = *pt++; // x = 25.4; pt = &arr[3]
//先将++应用于pt,对指针递增,后缀运算符是对原来地址(&arr[2])而不是递增后的新地址解除引用。
5.2while循环
while (test-condition)
body
先计算括号内的测试条件,若表达式为true,则执行循环体中的语句。
5.3 do while循环
do
body
while (test-expression);
先执行循环体,再判定测试表达式。如果条件为false,则循环终止;否则,进入新一轮的执行和测试。
5.4基于范围的for循环
double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49};
for (double x: prices)
cout << x << endl;
cin.get(ch)读取输入中的下一个字符,并将其赋给变量ch。
5.6 嵌套循环和二维数组
初始化二维数组
//一维数组
int btus[5] = {23,26,34,31,28};
//二维数组
int maxtemp[4][5] =
{
{96, 100, 12, 14, 16},
{99, 56, 12, 3, 1},
{95, 78, 2, 4, 6},
{87, 12, 12, 7, 18},
};