1

重複の可能性:
C / C ++では、なぜwhile(expression);を実行するのですか。セミコロンが必要ですか?

「while」ループと比較した「dowhile」ループの構造を理解しています。私が理解していないのは、なぜ言語がこの構文を必要とするのかということです。

do{
     statements();
} while(condition);

この表現の最後にセミコロンを付ける必要がありますか?それとも、コンパイラを簡単に作成できるようにするためですか?

4

2 に答える 2

1

は終わりではないので}、ステートメントの終わり、つまりセミコロンに到達したことを知る方法があると役立ちます。

それなしで言語を書くことは可能ですが、これらの言語でそれを要求することはより理にかなっています。

于 2011-04-12T23:37:32.673 に答える
0

少なくともJavaでは、次のように書くことはできません。

} while (i < 10) && (j != 8);

そのようなエラーメッセージを受け取らずに:

NodeSorter.java:24: ';' expected
        } while (i < 10) && (j != 8);
                        ^
NodeSorter.java:24: not a statement
        } while (i < 10) && (j != 8);
                               ^
NodeSorter.java:24: ';' expected
        } while (i < 10) && (j != 8);
                                   ^
3 errors

ですから、それは対称性の理由によるものだと思います。おそらく、そのようにパーサーを作成する方が簡単です。

于 2011-04-12T23:42:15.280 に答える