这是一个非常基本的问题,但未能找到明确的解释。为什么下面的代码为k提供30?
我只是想了解这种机制,但出于某种原因,我无法理解这一点。我知道我们首先开始查看内部for循环 - 我们得到10次迭代,直到number2达到10(k变为10,数字1变为24.但是下一步是什么?
int number1(4), number2, k = 0;
while (number1 < 10)
{
for (number2 = 1; number2 <= 10; number2++)
++k;
number1 = number1 + 2;
}
cout << k << endl;
答案 0 :(得分:2)
这一行:
number1 = number1 + 2;
不在内循环中。假设使用C / C ++,如果不使用花括号将代码包装在循环内,则只将loop指令后的第一行作为循环代码进行求值。
单个外循环迭代中发生的情况如下:
k
增加了10次。number1
增加2。外环重复3次。因此k
增加3 x 10次。
答案 1 :(得分:1)
我在下面的代码中添加了括号。
它与上面的代码相同,但更清晰。
int number1(4), number2, k = 0;
while (number1 < 10)
{
for (number2 = 1; number2 <= 10; number2++)
{ //Added the brackets
++k;
}
number1 = number1 + 2;
}
cout << k << endl;
你的缩进是愚蠢的