需要关于for循环示例的帮助,我不知道它是如何工作的

时间:2014-10-01 02:36:15

标签: java

任何人都可以帮我理解这相当于400吗?我无法弄明白for是如何运作的。

import java.util.*; //for class Scanner
public class Exercise 
{
   public static void main(String[] args) {
   Scanner reader = new Scanner(System.in);

   int value =0;
   for (int num = 10; num<= 40; num +=2){
       value =value+num;
   }
   System.out.println(value); 
}

3 个答案:

答案 0 :(得分:6)

如果查看评估循环时将使用的实际值,可能最容易理解。鉴于num被初始化为 10 ,并且循环将在等于或超过 40 时结束,这些是循环经历的16次迭代:

value = value + num
-------------------
value = 0     + 10
value = 10    + 12
value = 22    + 14
value = 36    + 16
value = 52    + 18
value = 70    + 20
value = 90    + 22
value = 112   + 24
value = 136   + 26
value = 162   + 28
value = 190   + 30
value = 220   + 32
value = 252   + 34
value = 286   + 36
value = 322   + 38
value = 360   + 40

value的最终值为400。

答案 1 :(得分:5)

Java for循环是来自链接的维基百科页面的Traditional for loop的示例,

for(INITIALIZATION; CONDITION; INCREMENT/DECREMENT){
  // Code for the for loop's body
  // goes here.
}

因此,您发布的示例等同于

int value = 0;
int num = 10;
while (num <= 40) {
  value += num;
  num += 2;
}
System.out.println(value);

当然,您可以直接添加输出以查看其中的操作,

for (int num = 10; num <= 40; num += 2) {
    System.out.printf("value = %d, num = %d%n", value, num);
    value = value + num;
}

答案 2 :(得分:1)

第一次通过

value = value + num;
  10   =   0 +    10;

第二遍:

value = value + num;
 22  =  10   +     12
第三遍:

 value = value + num;
  36         22  +  14 
在for循环中

for(initializer, condition, increment){

   do something!

}

初始化程序是起始编号

条件是导致循环停止的原因

增量是您要添加到初始值设定项的数量,以便在正确的时间满足条件。