我在其他任何地方用Java编写语句我需要用分号结束它。但是,这不适用于for循环的i ++。
怎么来的?
答案 0 :(得分:2)
因为它的特殊语法具有清晰且商定的语义含义,可由编译器解释,因为C / C ++ / Java /等的设计者。任意决定它应该如此。
编辑:
一些评论者指出,该决定并非真正的仲裁,因为设计师这样做是为了保持与表达式与语句语法的一致性。我很高兴他们指出了这一点,因为我不知道是这样的。在我的辩护中,他们显然可以使语法在该位置需要分号;决定不是,虽然不是完全随意的,但代表了一种可能不同的选择。咳。
答案 1 :(得分:2)
因为')'很好地终止了update语句所以它会多余吗?
答案 2 :(得分:1)
在C和C ++中都是这样,Java复制了这些语言的大部分语法,以便让来自它们的程序员更容易。
此外,实际上没有必要用“;”结束语句,因为右括号“)”划分了语句结束的位置。
答案 3 :(得分:1)
我会花一些时间来学习表达和陈述之间的差异;正如here所述。
for
循环的部分是表达式,而不是语句。表达式不以分号结束。 i++
是一个表达。同样,你不要在i ++之后加一个分号:
System.out.println(i++;);
// ^ wrong
这没有任何意义。相同的逻辑适用于if
和while
循环。
答案 4 :(得分:1)
如果你考虑一下,for循环中的三个术语中的两个真的不是真正的陈述。采用规范的循环
for(int ix = 0; ix < MAX; ix++){ /* do something */ }
这是
的真正简写int ix = 0;
while(ix < MAX){ /* do something */ ; ix++; }
请注意,ix < MAX
也没有分号。在for循环中,分号只是用于以某种方式分离术语 - 仅通过共同发生(并且缺少额外符号)它与语句终止符相同。