-3

任何人都可以解释为什么答案是他们想要的吗?第一个我猜是因为已经达到停止条件,所以它跳过了语句,但是问题 13 为什么它不打印 4321?

12.以下代码产生什么输出:

int n;
for (n = 1; n > 4; n++)
    System.out.print(n); 

一)12345

b) 1234

c) 0 ---> for 循环永远不会运行,因为已经满足停止条件。

d) 它不产生任何输出*

13.以下代码产生什么输出:

int n;
for (n = 4; n > 0; n--);  
    System.out.print(n); 

一)43210

b) 4321

c) 0* ---> for 循环后的分号,导致 print 语句在循环结束后运行

d) 它不产生输出

4

4 回答 4

2

关于问题 13:for 循环后面有一个分号。因此,循环将首先被执行,直到 n 不再 > 0 => 然后它为零。然后,打印将显示一个零。

于 2012-04-24T07:43:48.923 回答
0

第一个将不会产生任何输出,因为 for 循环体永远不会运行(假设打印行在 for 循环内)。第二个似乎在 for 循环中什么都不做,只是在循环后打印 n 的值。这将是 0,因为它刚刚未能通过大于 0 的测试。

于 2012-04-24T07:46:08.797 回答
0

问题 13中:

for (n = 4; n > 0; n--);

循环直接执行。所以,它只是减少 n 的值,直到它完成执行才进入下一条语句。所以,在它完成执行之前,它不会在这里声明。在执行结束时 n 的值为 0。所以,当谈到语句

System.out.print(n);

n 的值为0,因此程序的输出为 0

于 2012-04-24T07:53:51.747 回答
0

在问题 13) 中有一个 ; 在 for 循环之后,这意味着程序只执行 (n--) 4 次。结果 n 的值变为 0。

于 2012-04-24T07:57:16.160 回答