広告スペース(バナー)
🔧C言語 レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 50 / 68
gotoで後片付け処理をまとめよう
このレッスンでは、C言語のgotoを使った後片付け処理のまとめ方を学び、複数の終了パターンがある関数を整理する方法を理解することを目標にします。「C言語 goto 使い方」で調べている方向けです。
C言語には例外処理のfinallyはありませんが、gotoを使うと関数の末尾にある後片付け処理へまとめてジャンプできます。エラー処理を1箇所にまとめたいときに使われる、C言語らしいテクニックです。
サンプルコードでは、divide()関数の中でエラーが起きたときにgoto cleanup;で末尾のラベルへジャンプし、正常なときも自然にその位置まで処理が進むことで、後片付けの処理を1箇所にまとめています。
初心者がよくつまずくのが、gotoへの抵抗感です。「goto文は使うべきではない」という意見をよく聞きますが、C言語のエラー処理においては、この後片付け専用の用途に限っては広く許容されている使い方です。
実際の開発現場では、複数のリソースを確保・解放する処理で、goto文によるエラー処理の一元化がC言語の定番パターンとして使われています。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではC言語を直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
エラーが起きても必ず後片付けが行われる、安全な処理が書けるようになります。
エラーが起きても必ず後片付けが行われる、安全な処理が書けるようになります。
広告スペース(バナー)
広告スペース(記事内)