【问题标题】:For Loops and stopping conditionsFor 循环和停止条件
【发布时间】:2012-04-24 07:39:53
【问题描述】:

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

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

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

a) 12345

b) 1234

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

d) 它不产生任何输出*

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

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

a) 43210

b) 4321

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

d) 它不产生任何输出

【问题讨论】:

  • 你最好听老师的话,而不是在 iPhone 上玩愤怒的小鸟 :)
  • 如果这是家庭作业,应该这样标记;)
  • 许多教师/教授重复使用测验和考试中的问题。您确定您的老师不介意您在网上发布问题和答案吗?
  • @sp00m,谢谢,请记住。
  • @FrankPaaske,它不是 homeowrk,这是我正在复习的测验

标签: java loops for-loop


【解决方案1】:

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

【讨论】:

  • 哇,盯着这个问题看了整整 10 分钟,却从未注意到这一点。谢谢。
  • @Batman 您通过单击适合您的答案旁边的复选标记将其设置为已回答。 (不是通过更改标题:))
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    问题 13 中:

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

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

    System.out.print(n);

    n的值为0,所以程序的输出为0

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 2014-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多