日本語プログラミング言語「なでしこ」 > 戻る

制御構文

 なでしこには日本語を用いたさまざまな制御構文でプログラムの流れを制御することができます。
■繰り返し
  ┣単純な繰り返し
  ┣カウンター付きの繰り返し
  ┣条件付きの繰り返し
■条件分岐
  ┣単純な分岐
  ┣複雑な分岐
■各要素を反復実行
■例外処理
■インデントについて
■『ここまで』について

繰り返し

単純な繰り返し

同じプログラムを何度も繰り返す場合、『?回、〜する。』のように書くとプログラムが繰り返されます。

10回「こんにちは」と表示。

また、繰り返したい文章が複数の文に分かれるときは、以下のようにインデントで字下げして、繰り返したいプログラムを書きます。

10回
  「こんにちは」と表示。
  「やぁ!」と表示。

現在何回目の繰り返しなのかを知るには、システム変数の『回数』を使います。

10回
  「今は{回数}回目の繰り返し」と表示。

また、繰り返しの最後を明示したい場合は「ここまで」または「ここまで回」と書きます。

10回
  「わん」と表示
ここまで

1つのブロックが長い場合や、入れ子が複雑な場合に、「ここまで回」を記述することで構文の終わりをチェックさせることができます。詳しくは後述します。

カウンター付きの繰り返し

繰り返しの最中に、今何回目の繰り返しかを知りたい場合がよくあります。そんなときは、カウンター付きの繰り返しを使うと便利です。これは、『(カウンター変数名)で、(開始値)から、(終了値)まで、繰り返す』と書きます。

カウンタで1から8まで繰り返す
  「今は、{カウンタ}回目の実行です。」と表示。
  「こんにちは」と表示。

2から5まで繰り返す
  それを表示。

条件付きの繰り返し

さらに繰り返しですが、何回繰り返すというのではなくて、この条件の間繰り返したいという場合もあります。この場合は、『(条件式)の間〜する』と書きます。

Aは1
Aが10以下の間
  「A={A}」と表示。
  Aに1を足して、Aに代入。

単純な条件の場合は、『AがB以下』や『AがB以上』『AがB未満』『AがB超』などの日本語らしい条件を書くことができます。

もっと複雑な条件式を書くときは以下のように書きます。

A=1
(A*2 < 50)の間
  「A={A}」と表示。
  Aに2を足してAに代入。

条件分岐

条件によって実行するプログラムを変更したいときに、条件分岐の構文を使います。

単純な分岐

単純な分岐には、次のような構文を用います。『もし(条件)ならば(真の式)違えば(偽の式)』。

天気は「雨」
もし、天気が「晴れ」ならば
  「遠足に行く」と表示
違えば
  「遠足中止」と表示。

『もし〜ならば〜違えば〜』構文では、『違えば』の直後に『もし〜』とつなげることで連続した分岐判定を行えます。

天気は「雪」
もし、天気が「晴れ」ならば
  「遠足に行く」と表示
違えば、もし、天気が「雨」ならば
  「遠足中止」と表示
違えば、もし、天気が「雪」ならば
  「雪合戦」と表示
違えば
  「連絡を待つ」と表示
ここまで

複雑な分岐

分岐する項目が多いときは、『Aで条件分岐。Bならば〜。Cならば〜。違えば〜。』という書式の構文を使います。

天気は「雪」
天気で条件分岐
  「晴れ」ならば、「遠足に行く」と表示。
  「雨」ならば、「授業に変更」と表示。
  「曇り」ならば、「遠足と授業の用意をして登校」と表示。
  「雪」ならば、「雪合戦の準備をして登校」と表示。
  違えば、「授業に変更」と表示。

注意としては、条件分岐を使う場合は、必ず、「条件分岐」と書いた後に、インデントで条件を字下げする必要があることです。

各要素を反復実行

『反復』構文は、他の言語でいうイテレーター(反復子)の働きをします。例えば、文章がならば、文章の各一行ずつを順に反復して実行します。また、配列変数ならば、配列変数の各要素を反復実行します。

書式は、『(データ)を反復。(反復内容)』です。

 『反復』構文の実行では、各要素を、変数『それ』に代入してから反復内容を実行します。

 以下のプログラムは、文章の各行を表示します。

「あああああ
いいいいい
ううううう
えええええ
おおおおお」を、反復
  それを表示。

また、変数『それ』の内容は命令実行と共に書き換えられてしまうことが多いので変数『対象』にも、変数『それ』と同じ値が代入されるようになっています。

「あああああ
いいいいい
ううううう
えええええ
おおおおお」を、反復
  対象を表示。

例外処理

 ファイルの読み取りなどは常に成功するとは限りません。ファイルがなかったり、ロックされているとエラーで読み取ることができずエラーが起きます。しかし、エラーが起きては困ることがあります。そんなとき使うのが、例外処理です。

エラー監視
  「存在しないファイル」を読む
エラーならば
  「ファイルが開けませんでした。{改行}」
  「{エラーメッセージ}」と言う

「エラー監視」から「エラーならば」の間に書いたプログラム中を実行中にエラーが発生した場合に、「エラーならば」以降のプログラムを実行します。

インデントについて

 字下げ(インデント)は、基本的に、半角・全角スペースで行います。全角スペースは、半角スペース2つ分として計算します。

 また、タブでのインデントは、タブの位置によって1〜4文字として計算しますが、タブは、エディタの設定タブ幅によって幅が違うので、混乱の元になるので、あまりおすすめしません。

『ここまで』について

『回』『反復』『もし』などのインデントを使う制御構文で構文の最後が分かりにくい時があります。そのときに、『ここまで』と構文の最後を明示できるようにするものです。

10回
  「わん」と表示
ここまで回

もし、おかしなところで、『ここまで』と書くとエラーになります。そのため、インデントが複雑な場合に文法チェックするのにも役立ちます。

10回
  「わん」と表示
  ここまで回 # エラー

また『ここまで』の後に書く制御構文の名前は省略ができます。

10回
  「わん」と表示
ここまで



→トップへ →目次へ