C言語学習ポータル(無料版) 学習コンテンツ つまずきとエラー do-while の最後のセミコロン

🔀 制御構造

do-while の最後のセミコロン

どんなときに起きるか

error: expected ';' before '}' token(clang: error: expected ';' after do/while statement)。逆に while (cond); と書いてしまい、ループ本体が空になって無限ループになる事故も同根です。

なぜそうなるのか

do-while だけは while (条件); の末尾にセミコロンが必要です(while 文や for 文には不要)。この非対称さが混乱のもとです。

直し方・再発防止

do { ... } while (cond); と骨格を一気に書いてから中身を埋めます。あわせて、while (...) や for (...) の行末に余計なセミコロンを打っていないか(本体が空になっていないか)も確認します。

10回のつもりが(4コマ漫画)
4コマで見る「10回のつもりが」

アプリでしっかり学ぶ(無料・登録不要) つまずき一覧へ

同じ場面で起きやすいつまずき

= と == を間違えるif (x = 5) と書いてもエラーにならず、条件がいつも成立してしまいます。gccは warning: su… switch の break 忘れ一致した case 以降の処理が全部実行されます。gcc: warning: this statement ma… 無限ループから抜けられない実行すると出力が止まらない、または画面が固まって戻ってきません。Ctrl+C で強制終了するしかない状態になりま…

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る

📚 姉妹教材:手を動かして覚える Linux 教材 — Linuxとインフラの仕組みを地図で学ぶ

Web版 / BOOTH