需要解释以下java代码的输出

时间:2016-01-12 14:36:16

标签: java loops for-loop iteration

public class Test {  
  public static void main (String args[]) {
    int i = 0;
    for (i = 0; i < 10; i++);
    System.out.println(i + 4);
  }
}   

以下代码的输出是14.为什么它不是4?

怎么可能是14?需要一些解释

提前谢谢你......

4 个答案:

答案 0 :(得分:3)

简单。

  • 循环将i递增10而不执行任何其他操作(请注意;循环定义后的for
  • System.out语句在循环外打印i + 4(仅一次),即14

答案 1 :(得分:3)

for (i = 0; i < 10; i++);

这个循环除了将i递增10次之外什么都不做。

然后

System.out.println(i + 4);

评估为

System.out.println(10 + 4);

// output
14 

如果你在for (i = 0; i < 10; i++);的末尾放下半结肠,你将得到

4
5
6
7
8
9
10
11
12
13

作为输出。

答案 2 :(得分:0)

参见评论中的描述:

        // Declare variable 'i' of type int and initiate it to 0
        // 'i' value at this point 0;
        int i = 0;

        // Take variable 'i' and while it's less then 10 increment it by 1
        // 'i' value after this point 10;
        for (i = 0; i < 10; i++);

        // Output to console the result of the above computation
        // 'i' value after this point 14;
        System.out.println(i + 4);

答案 3 :(得分:0)

在评估System.out.println(i + 4);语句后,

for (i = 0; i < 10; i++);将被评估并执行。

for (i = 0; i < 10; i++);的结果为10。条件i < 10将为i=9,这是第10次迭代,而在第11次迭代i将为10,因为i++将被计算,此处为i<10 i条件失败。现在10的最终值为System.out.println(i + 4);。 评估下一个语句i(=10)+4 = 14,即var customer = new CustomerDetail(); customer = args[2];