【问题标题】:Why is this giving me this output?为什么这会给我这个输出?
【发布时间】:2021-04-06 00:28:15
【问题描述】:
public static void main(String[] args) {
         
           int n=0, m=0, i=0,maxI=300;

            while(i++<maxI) n++;

                   i=0;

                 while(++i<maxI) m++;

                System.out.print(n+","+m+","+i)
}

这段代码的结果,当我打印出 n.m,i 时,是 300、299、300。 发生了什么?我似乎无法弄清楚它是如何得出结果的。 我原以为只有 i 在第 2 行增加了。这让我很头疼

【问题讨论】:

  • 两件事:发布Minimal Reproducible Example(至少发布有效代码),并解释您希望看到的具体内容和原因。
  • 我不完全确定你在问什么。你的意思是你只希望 i 在第一个 while 循环中增加?如果是这样,你的退出条件是什么?
  • 我是新来的,真的不明白这个地方是如何运作的。我是java编程的新手。我在用作学习指南的 pdf 中遇到了代码,但我似乎无法理解为什么代码输出是这样的。我可以理解 i 小于 maxI 的增量,但是另一行代码让我很头疼
  • 我会很感激解释这行代码的工作原理和方式。谢谢

标签: java


【解决方案1】:

为什么'i'不应该在第 4 行增加?这是后增量,但它仍然是增量。

【讨论】:

    【解决方案2】:

    检查你的缩进! 请注意 i(++i, i++) 的前后增量。因此你得到 299 for i(++i)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      • 2013-06-18
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多