int a= IO.readInt();
int b = IO.readInt();
int z = 0;
int i;
for(i =0; z<=b; i++) {
z=z+a;
}
System.out.println(i);
a。)在给定以下输入的情况下,代码的实际输出是多少? 输入:a读入20,b读取75.
B)。这段代码类似于什么数学运算。
℃。如此实现,此代码是否正确完成了您在(b)中确定的操作?如果是这样,提供一些测试用例来表明这一点如果没有,修复代码中的错误。 ``
好的,所以我的教授回答了答案,我想知道你们是否有人可以解释这段代码中究竟发生了什么。我得到的是什么。)是4但是不知道它是怎么回事.4对于数学运算,代码类似于我得+ +加法而且那里没有接近答案的地方。我需要更好地了解循环,我们非常感谢您的帮助。
答案 0 :(得分:0)
输出是循环持续多少次,直到z> 1。湾每次都要对z + a做一个简单的补充,你应该理解它是如何执行的
答案 1 :(得分:0)
好的,这是我可以为循环做出的最佳解释,以及代码中发生的事情。
首先,for循环包含3个部分,initializer
,expression
和incrementor
,如下所示:
for (initializer; expression; incrementor)
您的初始值设定项会将int i
初始化为0.只要z小于或等于b(z <= b
)就会执行此操作,每次执行此操作时,它会递增i
} by 1;
你循环将第一个输入添加到z
,直到它不再低于b
。第一次运行时,它会将{20}添加到z
,将1添加到i
。然后它回到循环的开头,并检查表达式。
由于z
仍小于75,因此会再次运行。这使z
= 40,i
= 2.再次,z
小于75,因此它再次运行 。这一次,z
为60,i
为3;但是60仍然不到75.
我想你可以看到它的发展方向。这将我们带到最后的迭代。它向z
添加了另外20个,而i
增加了1个。现在z
= 80,i
= 4.并且它最后一次检查循环的表达式。由于z
大于75,因此循环终止。这会使i
的值为4,这就是您获得的输出
答案 2 :(得分:0)
首先,我将解释for循环如何工作,然后我将回答你的问题:
for(initialization of variables; condition-testing; increment variables) {
statements;
}
变量的初始化是经常初始化计数器的地方。在您的案例中,变量i设置为0,i =0
。
在条件测试中,您可以测试条件是否为真,如果条件为真,则执行for循环中的代码。在您的情况下,条件是: z&lt; = z + a 。如果这不能阻止你在for循环中执行代码并在for循环之后跳到右边,这在你的情况下是System.out.println(i)
最后之后,之后!一次迭代increment variables
部分更新。我的意思是一次迭代是从开始到结束执行for循环的主体。在您的情况下,这是z=z+a
。我不能足够强调在一次迭代后增量发生。在你的情况下,i++
被执行,这意味着变量i增加1。 i ++与i = i + 1相同.i + 1的旧值。
现在回答你的问题。 a)我将逐步解释会发生什么,并用粗体标记最终答案。
i=0
。 z<=b
,现在z = 0和b = 75,因此条件z<=b
成立,因此for循环中的语句正在执行.. z=z+a
正在执行中。始终首先评估等号=
的右侧,然后将其分配到=
符号的左侧。换句话说:z=z+a
看起来像z = 0 + 20
和z = 20
的新值i
递增。 i++
i
的值现在为1
。 i = 1
z<=b
第二次测试,z = 20
正如我们在步骤3中看到的那样,b = 75因此条件20<=75
为真,而且声明中的声明为 - 循环执行。z=z+a
,z = 20 + 20,z的新值变为40. z = 40
i++
,i
现在是2
。 i = 2
z<=b
第三次评估。 z = 40且b = 75,因此条件为真且循环正在执行。z = 60
i = 3
z = 80
i = 4
代码在for循环后恢复,所以现在正在执行System.out.println(i)
。这将打印i的值,因为您可以看到i的值在循环中增加到值4。这是打印的价值。的 4 强>
b / c)我没有完全理解数学运算的含义,但代码的作用相同:向上舍入75/20。
为了更好地理解for循环,你可以看看这个简化的例子:
for(int i = 0; i<2; i++){
System.out.println(i);
}
您将看到此程序的输出将是:
1
2
这是因为它从0开始并在条件i <2不再为真时停止。作为一个方便的技巧,您可以记住,此处的数字i&lt; 数字应该是for循环中的迭代次数。 (如果我也被初始化为0并且增加1,你会经常看到它。)