如何通过for循环观察x?

时间:2016-10-27 23:07:50

标签: java variables if-statement for-loop integer

假设x是一个整数并且已经初始化为某个值。考虑代码

for (int a = 1; a < 20; a++)
    if (x < 0)
        x = a;

哪个陈述对x的值有相同的影响?

一个。 if (x < 0) x = 1;

if (x < 20) x = 19;

if (x < 0) x = 19;

d if (x < 20) x = 20;

例如 x = 1;

对于这个问题,我对问题的内容感到有点困惑,因为答案不是我所期待的。

我选择了答案选项 b。 if (x < 20) x = 19;因为19小于20而其他答案选项在插入&#39; x&#39;时是错误的。这个问题的答案实际上是 a。 if (x < 0) x = 1;。我很困惑为什么答案选择 a。就是答案。

3 个答案:

答案 0 :(得分:1)

答案是答案。如果x小于0,则循环将在第一次迭代中将{1}分配给x。如果x已经大于0,则后续迭代将无效,因为两个方法都不会改变x的值。

答案 1 :(得分:0)

如果x已初始化为5(或任何大于0) - 那么该语句永远不会成立。例如:

int x = 3;
for (int a = 1; a < 20; a++)
    if (x < 0)
        x = a; // never reached

如果x被初始化为小于0的任何值,则该语句将仅评估一次,x将等于1.因为在第二次迭代时:  if(1 < 0)false,因此永远不会再分配x。

int x = -5;
for (int a = 1; a < 20; a++)
    if (x < 0)
        x = a; // reached once only - x == 1 

答案 2 :(得分:0)

假设x未初始化,那么在第一个循环中,只有在小于0的情况下才会分配x。在第一个循环中a = 1,因此x将被分配给1,之后再也不会,因为1> 0