为什么for循环使用分号?

scr*_*rd3 3 language-agnostic

在大多数C派生语言(C,Java,Javascript等)中,for循环具有相同的基本语法

for (int i = 0; i < 100; i++) {
    // code here
}
Run Code Online (Sandbox Code Playgroud)

为什么这个语法包含分号,当分号通常保留在行尾时?另外,为什么之后没有分号i++

wch*_*gin 11

这个伪代码:

for (A; B; C) {
    D;
}
Run Code Online (Sandbox Code Playgroud)

可以在内部转换为

{ // scope bracket
    A;
    while (B) {
        D;
        C;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 早期的循环可能只是当时的语法糖. (2认同)
  • 啊,但是您的扩展在`C` 之后确实有一个分号。 (2认同)