【问题标题】:Arrow symbol in for loop [duplicate]for循环中的箭头符号[重复]
【发布时间】:2019-05-28 06:32:18
【问题描述】:

在某些情况下,我看到在 for 循环中使用了类似箭头的符号组合,如下所示:

for(int i = 100; i --> 0;) {
    System.out.println(i);
}

这里发生了什么?

【问题讨论】:

  • 这是“去”运算符。 stackoverflow.com/q/1642028/1288
  • IntStream.range(0, 100).forEachOrdered(i -> System.out.println(99 - i));
  • 你的版本写法很奇怪for (int i = 99; i >= 0; i--)
  • 我必须警告:虽然在 Google 上通过简单的搜索查询很容易找到这个“运算符”,但读者可能不会立即清楚地看到这样的代码。我强烈建议使用“正常”的 for 循环,就像 Elliot Frisch 提到的那样。
  • 欢迎。我建议您使用帮助中心的tour,特别是阅读How to Ask 部分。您应该在发布新问题之前进行自己的研究。

标签: java


【解决方案1】:

这不是一个箭头,而是一个减量运算符,后跟一个大于号。

编译器看到的是一个不太清晰的(i--) > 0版本

【讨论】:

  • 啊。明白了。一开始很困惑,因为我看到不止一个人在他们的代码中这样做。感谢您的澄清!
  • “我见过不止一个人在他们的代码中这样做。” - 告诉他们停止它!
  • @MP1 如果您觉得这有帮助,请不要忘记投票并接受此答案。 (我同意斯蒂芬的观点,正如你所表明的那样,这还不清楚。)
【解决方案2】:

它是后减运算符和大于符号的组合,令人困惑和不可读。

和写一样:

for(int i = 100; (i--) > 0;) { ... }

i --> 0 本质上是 (i--) > 0

【讨论】:

  • 其实因为是post decrement,更像是:是(i > 0)后跟i = i - 1;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-18
  • 1970-01-01
  • 2013-06-05
相关资源
最近更新 更多