この章でも条件分岐について説明します。
前の章のif文では条件式がfalseであればif文は実行されませんでした。
そこで、条件式がfalseの場合にもif文を実行したい場合にはelseを使います。 では例をみてみましょう。 このようにelseを付け加えることにより条件式がfalseのとき(条件を満たしてない)にif文のelse以下を実行させることが出来ます。
num<=70の部分がfalseなのでelse以下のが出力されます。
タグ: if
条件分岐ifの公式1
この章では条件分岐について説明します。
条件分岐を日常の場面で説明します。
例えば、生活の場面で、もし、お金が10000円あったらフランス料理にして、20000円あったら中華料理にすると判断していますが、プログラムでもこのような表現ができるのです。
このように条件によって表現を変えることを条件分岐と言います。 条件式は条件を満たしていればtrueを返し、条件を満たしていないならばfalseを返します。
そして、trueの時にif文が実行されます(true,falseについては後ほど説明します)。
条件式には次の表のような関係演算子を使ってとかなどをのような記号を使って表現します。 では例をみてみましょう。 aは12で3より大きいので、条件を満たしているのでtrueになります。
このように条件を満たしていることをtrueと言います。
条件を満たしているのでif文は実行されます。
もっと正確に言うと、条件式は条件を満たしていればtrueになり、if文が実行され、条件を満たしていないならばfalseになり、if文は実行されません。
print でを出力するとtrueが出力されます。
print でを出力するとfalseが出力されます。
結果は以下の通りです。
次はfalseの例を紹介します。 結果は何も表示されません。
なぜかと言いますとの部分が条件を満たしていないからです。
つまり条件式がfalseになり、ifの中は実行されません。
では例をみてみましょう。 この例は関係演算子を使っていませんが、条件式に変数を入れています。
変数を入れた時のtrueとfalseの条件に付いて説明します。
trueとはfalseとnil以外のすべてです。この例では12というデータが入っているので条件式はtrueです。
0 やカラの文字列も全てtrueです。
例えカラ文字の変数でも何かしらのデータが入っていれば条件式はtrueになると覚えてください。
以下の例は条件式にfalseやnilが入っているので条件式はfalseです。
これらのfalseやnilや trueは疑似変数と呼ばれています。 次の例はカラ文字を変数に入れていますが、条件式はtrueです。
カラ文字とは以下の例をみていただくと分かりますが、の部分です。 次はif文で文字列の比較を行う方法について説明します。
では例をみてみましょう。 文字列の比較は数値と同じ関係演算子を使います。
Perl言語などは文字列専用の関係演算子を使っていますが、Rubyは数値も文字列も同じ関係演算子を使います。
文字列同士の比較の場合は以下のような規則があります。
〇アルファベットの比較では大文字の方が小文字より大きい。
〇 aが一番小さくzが一番大きい
〇日本語の比較は「あ」が一番小さく、「ん」が一番大きい。
結果は以下の通りです。
if文で星座を判別しよう
if文で星座の判定を書いてみましょう。
Console.ReadLine()でユーザーに誕生月と誕生日を入力させて、それに対して星座を出力させるプログラムです。
少し長いプログラムですがif文が連なっているだけです。
ここで使っているif文は入れ子になっています。
つまり、if文の中にif文が入っている構造になっています。 初めに以下の箇所でユーザーに入力させた文字列を整数値に変換しています。 次にmonthの数値が1から12までのどの数値なのかを初めのif文で確認します。
そして2つ目の入れ子のif文でdayの値により分別をします。
if文は入れ子にすることが出来ることを覚えておいてください。
例えばmonthが1だとしますと1月は山羊座もしくは水瓶座なので、これを入れ子の条件式によりさらに分別します。
1月19日までが山羊座で、月末までが水瓶座ですので、これを条件式にという形式で書きます。
if文の入れ子についてまとめますと、初めのif文で大まかな分別を行い、入れ子のif文で詳細の分別を行いたい時にif文の入れ子を使います。
この例では最初のif文で月を決めて、入れ子のif文で星座を決めます。 結果の一例は以下の通りです。
for文の中でif文とbreakを使ってみよう
この章ではfor文の中でifとbreakを使う方法について説明します。
for文の中ではif文とbreak文を組み合わせて使うこともできます。
breakは現在進行中の実行文を強制終了する機能を持っています。
breakはswitch文で使用しましたが、このbreak文はfor文や(まだ説明してない)while文などで使用することが出来ます。
では例をみてみましょう。 for文のブロックの中にif文が入っていますが、このif文の意味は「もし、iが4になったらforループを抜けますよ」と言う意味です。
breakはこのようにループしているブロックを抜けるために使用します。
iが4になった時にfor文をbreakするので、「4つのリンゴ」「5つのリンゴ」は表示されません。
for文の入れ子の中でbreakを使う場合には注意が必要です。
次の例はforの入れ子の中でbreakを使用する方法について説明します。 上から2つ目のforの中でbreakを使っていますが、入れ子のforの中でbreakを使った場合、breakで抜けることができるのはbreakのあるfor文(例の場合は上から2つ目)だけです。
つまりif文の条件部分が3を超えましたらfor文を抜けるのですが、抜けた後はまた一番前のに戻ってきてループを繰り返します。上の例のようにbreak文はbreak文を含む内側のブロックしか抜けませんが、一気に外側のブロックを抜ける方法を次の例で説明します。 ある条件になったら繰り返しを止めたいと思う箇所にと記述してください。
次に抜けたい箇所にと言う形式で記述すると、そこまで実行位置を移すことが出来ます。
ラベル名は変数名と同じ規則で自由に付けることが出来ます。
if文について理解しよう。if文の基本構文3
if文について理解しよう。if文の基本構文2
if文について理解しよう。if文の基本構文1
この章ではif文について説明します。
if文はどのような時に使われるのかを日常生活の中の場面で説明します。
例えば、「もし、今日財布にお金が10000円あったらフランス料理にして、20000円あったら中華料理にする」などの選択を繰り返して人は生きていますが、プログラムでもこのような表現ができるのです。
このように条件によって表現を変えることを条件分岐と言います。 基本構文にある条件式は条件を満たしていればTRUEを返し、条件を満たしていないならばFALSEを返します。
そして、TRUEの時にブロックの中の文が実行されます。
何が「TRUE」「FALSE」であるのかは次の例で説明します。 では何がTRUEで、何がFALSEであるのか説明します。
この例では変数aの値は2より大きいので、条件を満たしていると考えるのです。
このように条件を満たしていることをTRUEと言います。
逆に条件を満たしていない場合にはfalseになり、if文は実行されず、無視されます。
このように比較演算を行えば必ず TRUEもしくはFALSEの値が返ってきます。
これらの型をbool型、もしくは論理型と言います。
次の例の場合はどうでしょう。 結果は何も表示されません。
なぜかと言いますとの条件部分が条件を満たしていないからです。
つまりFALSEになり、ブロックの中が実行されません。