重複の可能性:
C / C ++では、なぜwhile(expression);を実行するのですか。セミコロンが必要ですか?
「while」ループと比較した「dowhile」ループの構造を理解しています。私が理解していないのは、なぜ言語がこの構文を必要とするのかということです。
do{ statements(); } while(condition);
この表現の最後にセミコロンを付ける必要がありますか?それとも、コンパイラを簡単に作成できるようにするためですか?
重複の可能性:
C / C ++では、なぜwhile(expression);を実行するのですか。セミコロンが必要ですか?
「while」ループと比較した「dowhile」ループの構造を理解しています。私が理解していないのは、なぜ言語がこの構文を必要とするのかということです。
do{ statements(); } while(condition);
この表現の最後にセミコロンを付ける必要がありますか?それとも、コンパイラを簡単に作成できるようにするためですか?
は終わりではないので}
、ステートメントの終わり、つまりセミコロンに到達したことを知る方法があると役立ちます。
それなしで言語を書くことは可能ですが、これらの言語でそれを要求することはより理にかなっています。
少なくとも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
ですから、それは対称性の理由によるものだと思います。おそらく、そのようにパーサーを作成する方が簡単です。