【问题标题】:Why they used ; to end statements in Java/C++他们为什么使用;在 Java/C++ 中结束语句
【发布时间】:2012-04-20 22:58:17
【问题描述】:

他们不应该使用 .结束陈述。他们可以使用 -> 来调用方法。这只是一个疏忽吗?还是这里有一些更深层次的事情?

【问题讨论】:

  • 他们为什么用刹车来停车?他们不能直接跳下车吗?
  • @Starx 这个类比好吗?
  • @Starx 谁使用刹车?普通人只会撞到他们面前的车。
  • 哇,完全合理的问题被单一文化的地方主义者解决了,他们无法忍受认为可能有不止一种有效的方法来做某事。特别具有讽刺意味的是,基于做出这一特定决定的非常合理的理由,对这个问题有一个完全理性的答案。好吧,最好保持对我们自己的职业一无所知,而不是冒险挑战我们的偏见......我想......

标签: java syntax separator


【解决方案1】:

Java 选择分号是为了具有类似于 C 和 C++ 的语法。

C++ 选择它具有类似于 C 的语法。

我猜 C 选择分号是因为 B、ALGOL 和 Pascal 已经使用了它,并且没有理由不使用已经接受的约定。

【讨论】:

  • AlgolW 提供用于替换“;”用“.”和“:”用“..”,因此可以将数组 x 声明为 x[3..5]。也许当时有一个没有分号的计算机字符集? Algol68 称为“;” gomma,“Go On Comma”的缩写。与允许不确定性(附带执行)的“,”逗号相比,参见Short circuit evaluation using procedures
  • 在早期的 Algos 中,“.”用于表示“正确程序”的结束。在 Algol68 中的“。” (或 qed square )的行为类似于混合 break/return 语句,允许语句返回替代值。
【解决方案2】:

编辑:见https://softwareengineering.stackexchange.com/questions/139482/why-are-statements-in-many-programming-languages-terminated-by-semicolons#139485

...所以人们理解评论(和否定),这是原来的:

“此外,分号代表 C/C++ 中的 NOP(无操作或空命令)”可能会提供一个线索,说明为什么它很常见

http://en.wikipedia.org/wiki/Semicolon#Computing_usage

【讨论】:

  • 那么为什么用 NOP 来表示语句的结束呢?我认为你没有回答问题。
  • @Starx 你是对的。我当时很着急,还没来得及写完。我在程序员 SE 中搜索并找到了一个答案,我已将其发布在答案的顶部。我可能应该等着回答,或者至少避免匆忙不回答。
猜你喜欢
  • 1970-01-01
  • 2018-04-05
  • 2022-12-12
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 2011-10-29
相关资源
最近更新 更多