COBOLのif文に出てくるNEXT SENTENCEとCONTINUEの違いとは?初心者でもやさしく理解!
生徒
「COBOLでif文のあとに書かれているNEXT SENTENCEとCONTINUEって、どう違うんですか?」
先生
「いい質問ですね。これはCOBOLの制御構造(プログラムの流れを決める仕組み)に関係するキーワードです。初心者の方でもわかるように、身近な例を交えて説明していきますね。」
生徒
「お願いします!いまいち違いがピンとこなくて…」
先生
「それでは、NEXT SENTENCEとCONTINUEの違いをわかりやすく説明しましょう!」
1. NEXT SENTENCEとは?
NEXT SENTENCEは、COBOLのIF文などで条件が「偽(false)」の場合に使われるキーワードです。
この命令は「次のピリオド(.)までスキップして進む」という意味です。
たとえば、学校の先生が「この条件に当てはまらなければ、次の話題に移りますよ」と言っているような感じです。
では、簡単な例を見てみましょう。
IF AGE < 20 THEN
DISPLAY "未成年です。"
ELSE
NEXT SENTENCE
DISPLAY "年齢の確認が終わりました。"
このコードでは、AGE(年齢)が20未満なら「未成年です。」と表示します。
それ以外(20以上)なら、NEXT SENTENCEで「次のピリオドまでスキップ」されるので、「DISPLAY "年齢の確認が終わりました。"」は実行されません。
(AGE = 18 の場合)
未成年です。
年齢の確認が終わりました。
(AGE = 25 の場合)
年齢の確認が終わりました。
実はこの結果、少し分かりにくいですよね。NEXT SENTENCEはどこまでが次の文(SENTENCE)なのかを正確に理解していないと、予期しない動作になることもあります。
2. CONTINUEとは?
CONTINUEは「何もしないで次に進む」という意味のキーワードです。つまり、IF文の中で何の処理も書かない場合に使います。
たとえば、こんなイメージです。
先生が「この条件に当てはまらないなら、そのまま次の行に進みますね」と言っているのと同じです。
IF AGE < 20 THEN
DISPLAY "未成年です。"
ELSE
CONTINUE
DISPLAY "年齢の確認が終わりました。"
(AGE = 18 の場合)
未成年です。
年齢の確認が終わりました。
(AGE = 25 の場合)
年齢の確認が終わりました。
このように、CONTINUEはNEXT SENTENCEとは違って、何もスキップせずに次の処理にそのまま進むのが特徴です。
3. NEXT SENTENCEとCONTINUEの違いを身近な例で比較
ここで、もっとわかりやすく「会話形式の例え」で比べてみましょう。
- NEXT SENTENCE:「この話、違うなら飛ばして次の章へ行きましょう」
- CONTINUE:「特に言うことはないので、次の行へ行きますね」
たとえば、次のような物語の流れを想像してください。
ある登場人物が「もし雨が降っていたら傘をさす、そうでなければ(何もしないで)そのまま歩く」。
この場合、何もしないのでCONTINUEがぴったりです。
一方、「もし雨が降っていたら傘をさす、そうでなければ次の話に移る」といった場合はNEXT SENTENCEが使えます。
4. 使用上の注意とおすすめ
NEXT SENTENCEは便利な反面、バグの原因になりやすいという特徴もあります。
なぜなら、「次の文」とはどこまでなのかを判断するのが難しく、思わぬ場所までスキップされることがあるからです。
プログラミング初心者には、最初はCONTINUEを使うことをおすすめします。理由は以下のとおりです:
- プログラムの流れがわかりやすい
- 思わぬスキップを防げる
- 保守(あとから修正)しやすい
現代のCOBOLでは、NEXT SENTENCEはあまり使われなくなってきています。
そのかわりにCONTINUEやIF〜END-IF構文を使ったほうが安全で読みやすいコードになります。
5. まとめておさらい!NEXT SENTENCEとCONTINUEのポイント
| キーワード | 動作の説明 | 初心者へのおすすめ度 |
|---|---|---|
NEXT SENTENCE |
次の文(ピリオド)までスキップする | △(少し難しい) |
CONTINUE |
何もせず次の行に進む | ◎(おすすめ) |