for文の中でbreakを使ってきましたが、この章ではwhile文の中でのbreakの使い方について説明します。
breakの使い方はfor文と同じです。
では例をみてみましょう。 上の例はwhile文の中にif文が入っている構造です。
タグ: if
forとifとbreakを組み合わせて使おう
この章ではfor文の中でのbreakの使い方について説明します。
switch文の中でbreakを使用しましたが、これは一連の流れを強制的に中止したい時やブロックを抜けたい時に使いました。
このbreakはfor文の中でも使用することが出来ますので、例を見てみましょう。 例のようにfor文にif文を入れることもできます。
このif文の意味はbreakを使用しているので「もし、iが4になったらfor文を抜けますよ」と言う意味です。
ですので、「4つのリンゴ」「5つのリンゴ」を出力することなくループを終了します。
breakはこのように一連の流れ(ループ)を強制的に中止したい時に使用します。
次の例はforの入れ子の中でbreakを使用しています。 この例では上から2つ目のforの中でbreakを使っていますが、forの中でbreakを使った場合、breakで抜けることができるのはbreakのあるfor文(例の場合は上から2つ目)だけです。
つまり例の場合は上から2つ目のfor文の中のif文の条件部分が3を超えたら、(上から2つ目の)for文をbreakするのですが、breakした後はまた一番前のに戻ってループを繰り返します。
次の例をみてみましょう。 先ほどの例のように入れ子の中のfor文でbreakを使用した場合、抜けることが出来るのは内側のfor文だけですが、一気に外側のブロック(一番前のfor)を抜けたい場合の方法について説明します。
ある条件になったら繰り返しを止めたいと思う箇所にと記述してください。
次に抜けたい箇所にと言う形式で記述すると、そこまで実行位置を移すことができます。ラベル名は変数名と同じ規則で自由に付けることが出来ます。
この例では の箇所で「i*j」の結果が3より大きければが実行されて、のある場所まで実行位置を移すので二重ループそのものを抜けます。 for文以外でもgotoは使うことができます。
以下の例ではif文の中でgotoを使用しています。
if文で星座の判定をしよう
この章ではif文で星座の判定のプログラムを作成します。
scanfでユーザーに誕生月と誕生日を入力させて、それに対して星座を出力させるプログラムです。
少し長いプログラムですが、if文が連なっているだけです。 ここで使っているif文は入れ子になっています。
つまり、if文の中にif文が入っている構造になっています。
この例では初めにmonthの数値が1から12までの、どの数値なのかをから以下のif文で確認します。
次に2つ目のif文でdayの数値により星座の分別を行います。
星座が2つあるので、条件式はという構文で書きます。
例えばmonthが1であれば1月は山羊座か水瓶座なので、dayが18であれば山羊座になります。dayの数値が31を超えていればが実行されます。 結果の一例は以下の通りです。星座の日決めには説があり、上のif文では必ずしも自身の星座が出力されない可能性がありますので、その辺の誤差はご勘弁ください(星座の切り換わりの日が説により1日ずれています)。
if文の条件式に変数を入れよう
if文について理解しよう。if文の基本構文3
if文について理解しよう。if文の基本構文2
この章でもif文について説明します。
ifの基本構文1では条件式がFALSEの場合にはif文の中は無視されて何の処理も実行されませんでした。
そこで、条件式がFALSEの場合にも何かしらの処理を実行したい時に使用するのが
「if-else」です。
では例をみてみましょう。 「wallet=15000;」は財布に15000円入っているという意味です。
そして条件式は「財布に入っているお金が10000円より少ないのならば」と言う意味なのですが、財布には15000円入っているので(10000円より多いので)、条件式はFALSEです。FALSEなので「条件式がFALSEのときに実行される文」つまりが実行されます。
もう1つ例を挙げます。 ユーザーに入力させたaとbの値が同じ数値、つまりTRUEであるならばを実行します。
ユーザーに入力させたaとbの値が違う数値、つまりFALSEであるならばを実行します。
例えば45を2回入力した場合の結果は以下の通りです。
if文について理解しよう。if文の基本構文1
この章ではif文について説明します。
if文はどのような時に使われるのかを日常生活の中の場面で説明します。
例えば「もし、今日財布に10000円あったらフランス料理にして、20000円あったら中華料理にする」などの選択を繰り返して人は生きていますが、プログラムでもこのような表現ができるのです。
このように条件によって表現を変えることを条件分岐と言います。
条件分岐にはifを使用します。 「条件式」には下の表のように比較演算子を使ってとかなどをやのような記号(比較演算子)を使って表現します。 条件式は条件を満たしていればTRUEを返し、条件を満たしていないならばFALSEを返します。
そして、TRUEの時にブロックの中の文が実行されます。
では何がTRUE、FALSEなのかを次の例で説明します。 この例は条件式に比較演算子のを使用していますが、常識的に考えて5は2より大きいですので、条件を満たしています。
これがTRUEです。
TRUEですので、が実行されます。
では以下のif文は条件を満たしているでしょうか? 2は5より大きくないので条件を満たしていません。
これがFALSEです。
FALSEの場合はが実行されません。
次は比較演算子」のを使います。 aとbの値が等しい場合にTRUEになりますので、この例ではが出力されます。
if文で星座を判定しよう
if文を入れ子にしよう
if文について理解しよう。if文の基本構文1
if文はどのような時に使われるのかを日常生活の場面で説明します。
例えば、もし、今日財布にお金が10000円あったらフランス料理にして、20000円あったら中華料理にするなどの選択を繰り返して人は生きていますが、プログラムでもこのような表現ができるのです。
このように条件によって表現を変えることを条件分岐と言います。 ifは英語と同じでという意味です。
「条件式」には下の表のように比較演算子を使ってなどをやのような記号を使って表現します。
条件式は条件を満たしていればTRUEを返し、条件を満たしていないならばFALSEを返します。そして、TRUEの時にブロックの中の文が実行されます。
TRUEは真、FALSEは偽とも言いますが、何がTRUEもしくはFALSEなのかを次の例で説明します。 条件式には比較演算子のを使用していますが、5は2より大きいですので、条件を満たしていると考えるのです。
これがTRUEです。TRUEですので、が実行されます。
では以下のif文は条件を満たしているでしょうか? 2は5より大きくないので条件を満たしていません。
これがFALSEです。
FALSEの場合は、if文は実行されません。
つまり、ブロック内が何も実行されないので画面には何も表示されません。
では比較演算子の中からいくつか例に取って説明します。 比較演算子の「===」は$a が $b に等しいと同時に同じ型である場合に TRUE と言う意味です。
変数の型については説明しましたが例1は$aも$bも同じ値で、同じ整数型なのでTRUEです。
例 2は$aは文字列型、$bは整数型なのでFALSEです。
このようには値と型が一致しないとTRUEになりません。
比較演算子の「==」は値だけが一致していればif文を実行します。
例2の条件式の箇所をで書き換えますと、TRUEになります。
「==」の場合には値だけが一致していれば型が一致しなくてもTRUEになります。
これまでのif文ではprint文が少し右にずれているのが分かるでしょうか?
この手法はインデントと呼ばれていますが、プログラムを見やすくするために左側にスペースを入れています。
インデントには半角スペースかTABキーを使います。全角のスペースを入れるとエラーになりますので気を付けてください。