关于java循环的困惑

时间:2018-04-23 09:38:23

标签: java loops for-loop

我刚开始学习编程,java是我的第一语言。我发现涉及循环的练习,我想知道结果是如何找到的:

int result = 0;
for (int i = 0; i < 5; i++){
    if(i == 3){ 
        result += 10;
    }
    else{
        result += i;
    }
}
System.out.println(result);

输出为:17

我知道这是一个愚蠢的基本问题,但我真的需要了解结果如何17。

5 个答案:

答案 0 :(得分:5)

在你的循环中:

  • i0开始,因此第一个值为0
  • i<5不为真时停止,因此当i=5不循环时,最后一个值为4

因此i将采用值:

i -> action
0 -> go into else : result +=  0 so result is 0
1 -> go into else : result +=  1 so result is 1 
2 -> go into else : result +=  2 so result is 3
3 -> go into if   : result += 10 so result is 13
4 -> go into else : result +=  4 so result is 17

答案 1 :(得分:1)

下面逐行给出代码说明:

int result = 0;
for (int i = 0; i < 5; i++){ 
if(i == 3)
{ 
  result += 10;
}
else{
  result += i;
}
}
System.out.println(result);

第1行:结果变量(类型int)初始化为零(0)

第2行:我们正在使用一个从0到4(5次)的for循环

第3-6行(if-condition):我们在这里使用if-condition,如果i == 3那么它会将10加到结果变量else(当i不等于3时) )它会将i的值添加到结果变量中。

对于i等于0,1,2和4,它将i的值加到result(else part),而i等于3,它将10加到result的值。

第7行:最后,我们正在显示结果的值。

答案 2 :(得分:0)

你的循环为i开始值0

int i = 0

循环直到i大于4

i < 5;

并为每个循环添加1到i

i++

然后i达到值3

 if(i == 3){ 

将{10}添加到result变量

result += 10;

如果是另一个值,请将i值添加到result

 }else{
        result += i;

结果为17的原因是:

第一个循环,i = 0且不是3,因此您将i添加到resultresult = 0

然后在第二个循环i = 1而不是3,因此您将i添加到resultresult = 0 + 1

然后在第三个循环i = 2并且不是3,因此您将i添加到resultresult = 1 + 2

然后在第四个循环i = 3 ,它是3,所以你将10 添加到resultresult = 3 + 10

然后在第5循环i = 4并且不是3,因此您将i添加到result result = 13 + 4 = 17

没有第6个循环,因为i不再小于5

答案 3 :(得分:0)

以下是代码的简单注释版本:

//Result is set to 0 first
int result = 0;

//Basic for loop, int i = 0 is setting your counter to 0, 
//then i < 5 is the loop's stop condtion
//Finally i++ represent the incrementation, in this case "i++" means i = i + 1
for (int i = 0; i < 5; i++){

//Here if i = 3 result  = result + 10
    if(i == 3){ 
        result += 10;

// Else you add i's value to your result
    }else{
        result += i;
    }
}
//I = 5 so you get out of the loop
//In the end you print the result
System.out.println(result);

结果的价值:

i = 0 -> result(0) + 0 -> 0
i = 1 -> result(0) + 1 -> 1
i = 2 -> result(1) + 2 -> 3
i = 3 -> result(3) + 10 -> 13
i = 4 -> result(13) + 4 -> 17
i = 5 -> you get out of the loop
Final result : result = 17

答案 4 :(得分:0)

for循环将变量i初始化为0,并在每次迭代中为其添加1。因此,在第一次迭代中,i0,在下一次迭代中,i1,依此类推。在每次迭代中,循环体,即for语句下的代码被执行 现在让我们来看看循环的主体。在正文中,它正在检查i是否占用了值3i==3)。当i占用值3时(即,在第4次迭代中),10会被添加到结果中。 (result += 10result=result+10相同。只要i占用除3以外的任何值,其他条件就会被执行。
因此,当i为0,1或2时,result的值将分别为
0(0 + 0),1(O + 1),3(1 + 2) i=3时,结果=结果+ 10 - &gt; 结果= 3 + 10 - &gt; 结果= 13
i=4时,结果=结果+ i - &gt; 结果= 13 + 4 - &gt; 结果= 17 i无法接受值5,因为它不同意条件i<5。因此你有 结果= 17