「6さいからのプログラミング」第7話では、プログラムを上から下へ順に処理させるだけでなく、分岐や繰り返しを行う方法について解説します。第6話までに解説した知識だけでも、高度なプログラムを作成することができます。world!を30個表示するプログラム」は、図1-1のように書けます。hello_worlds.cこれが30個ではなく10,000個だと相当大変になります。world!\n");を30回繰り返せ」というふうに簡潔に書けます。条件の真偽によって分岐する「選択処理せんたくしょり」と、一定の命令を繰り返す「反復処理はんぷくしょり」を組み合わせます(図1-2)。選択と反復また選択処理でも反復処理でもない、上から下に実行されるだけの処理を「逐次処理ちくじしょり」といいます。どのプログラミング言語にも似たものが用意されていますので、例としてC言語における選択・反復処理の構文を順に見ましょう。「if文イフぶん」は、条件の真偽によって処理を変える、選択処理の基本的な構文です。図2-1のように書きます。if.cif文は、「もし○○ならばこの処理を、ではなく××ならばこの処理を、でなければこの処理を実行する」という構文です。large"を画面に表示せよ」となっています。「ではなく」に相当する「else」は、いくつでも追加したり、省略することもできます(図2-2)。if2.cこのプログラムの場合、n<5ならば画面にsmallが3回表示され、それ以外のときには何も表示されないプログラムとなります。「switch文スイッチぶん」は、値に応じて処理を分ける構文です。変数nの値に応じて処理を分ける場合、図3-1のように書けます。switch.cこのプログラムの場合、nが0か1か5であればredを、nが3か8であればgreenを、それ以外ならばblueを画面に表示します。値:」にジャンプし、「break;」によってswitch文を抜ける動作となっています。「break;」が無ければその次のcaseの処理まで実行されます。一致したcaseが無ければ「default:」にジャンプします。defaultは省略可能で、その場合、一致するcaseが無ければ何もせずにswitch文を抜けます。「goto文ゴートゥーぶん」は、指定した行にジャンプする構文です。図4-1のように書きます。goto.cジャンプ先となる行には「ラベル名:」を記述します。piyo;」によって「piyo:」にジャンプする処理になっており、画面には「looping」が何度も表示され続けます。goto文を使うとソースコードが読みづらくなるという欠点があるため、できればgoto文は使わずに別の方法で書くことが推奨されています。「while文ホワイルぶん」は、条件が真である限り処理を繰り返す構文です。図5-1のように書きます。while.cこのプログラムの場合、「n!=10」である限り「n+=2;」の処理を繰り返して実行します。初めから「n!=10」の条件を満たしていなかった場合は、何もせずにwhile文を抜けます。似た構文に「doドゥ-while文ホワイルぶん」があります(図5-2)。do-while.cこのdo-while文は、動作はwhile文と似ていますが、繰り返すかどうかの判断が中身の処理の後で行われます。初めから「n!=10」の条件を満たさなかった場合でも、最低1回は「n+=2;」が実行されます。「for文フォアぶん」は、数を数えながら繰り返す構文です。0から9まで数えながら計10回処理を行いたい場合、図6-1のように書きます。for.c書式は「for(初期値;繰り返し条件;増減)」です。このプログラムでは、画面には0から9までの10個の数が順に表示されます。10から0まで2ずつカウントダウンしたい場合は、「for(i=10;i>=0;i-=2)」とします。for文は、同じ動作をするwhile文に書き換えることができます。先ほどのプログラムは図6-2のように書けます。while2.c数えながら一定回数だけ繰り返したい場合は見やすさのためにfor文を、それ以外の繰り返し処理はwhile文を使うと良いでしょう。7break文とcontinue文for文、while文、do-while文の繰り返し処理を途中で抜けるには「break文ブレークぶん」を書きます。繰り返し処理を1回スキップするには「continue文コンティニューぶん」を書きます(図7-1)。break_and_continue.cこの例では、iが3になると繰り返し処理を1回スキップし、iが6になると繰り返し処理を抜けるというプログラムになっているため、画面には「0」「1」「2」「4」「5」が表示されます。厳密には、breakは繰り返し処理の閉じ括弧「}」の直後にジャンプする命令で、continueは閉じ括弧「}」の直前にジャンプする命令です。for文などが何重にも入れ子になっていた場合は、breakやcontinueは一番内側の1つだけを抜けたりスキップしたりします。8無限ループ無限に繰り返したい場合は、よく「for(;;)」と書きます。for文の各項目は省略可能で、繰り返し条件を省略すると永久に繰り返します(図8-1)。infinite_loop.c「for(;;)」ではなく、C言語では「while(1)」、C++では「while(true)」と書いても無限に繰り返されますが、条件式が常に真になる処理はコンパイル時に警告が出る場合があります。world!を30個表示するプログラム」を簡潔に書き直してみたいと思います。hello_worlds2.cとてもシンプルになりました。ちなみに別の言語で書いても同様で、JavaScriptの場合は図9-2のようになります。world!を30回表示するための簡潔な書き方について解説しました。前へ目次ホームへ次へ©Kuina-chan1579922095jaf。