プログラムの流れを変える ``制御構造をあわらす命令''を使用する。 制御構造を表す命令には、``if'', ``while'', ``case'', ``for''などがある。
条件を複数設定するには、以下の様にする。 もし[条件文1] が成り立てば ``処理1''を実行し、 成り立たなければ次の[条件文2]を判断する。``elsif''は複数つなげてもよい。
"[条件文1] が成りたつ" と言うのは、"[条件文1] true" を示し
ている。
"[条件文1] が成りたたない" と言うのは、"[条件文] false" を示し
ている。
例えば、年齢を読み込み、20歳以上なら ``あなたは大人です''、20歳未満なら ``あなたは子供です。''と表示するプログラムを作る。
------------program Start --------- printf ("あなたの年齢を入力して下さい。\n") a = gets.chomp # 変数をキーボードより入力。shompは改行を取る命令 nenrei = a.to_i # 文字変数を整数に変換 if nenrei > 19 then printf("%d歳なので、あなたは大人です。\n", nenrei) else printf("%d歳なのであなたは子供です。\n",nenrei) end ------------Program End ----------
条件が2つ以上あった場合はどうするか? 例えば、テストの得点を入力し、60点未満は「あなたは不可デス。」、60点から 79点までは「あなたは良です。」、80点以上なら「あなたは優デス。」と 表示 させるプログラムを作ってみる。
------------program Start --------- printf ("テストの得点を入力して下さい。\n") a = gets.chomp ten = a.to_i if ten < 60 then printf("%d点なので、「不可」です。\n", ten) elsif (ten >= 60) & (ten < 70) printf("%d点なので、「可」です。\n",ten) elsif (ten >= 70) & (ten < 80) printf("%d点なので、「良」です。\n",ten) else printf("%d点なので、「優」です。\n",ten) end ------------Program End ----------
------------------------------- # sum は合計をあわらす変数で sum = 0 # 初期値をゼロに設定 for n in 1..10 do # n: 変数、1..10 は n を # 1から10まで変化させるオブジェクト sum = sum + n # sum に順次nの値を加え、その結果をさらに # sumに置き換えている。 print sum, "\n" # 計算経過の表示 end print "合計は ", sum, "です。\n" --------------------------------メソッド定義を利用して、a から bまでの和を求めるプログラムに書き換える。 a, bはメソッド内で使用する変数でると考える。
----------------------------------- def wasan(a,b) sum = 0 for n in a..b do sum = sum + n # print sum, "\n" # ==> コメントアウトしておく end print "合計は ", sum, "です。\n" end wasan(1,100) wasan(1,50) wasan(30,150) -----------------------------------このように書き換えると、劇的にプログラムの生産性があがる。 メソッドの練習の詳細はセクション9で行う。
------------------------------- sum = 0 # 初期値 n = 1 # 初期値 while n < 101 do sum = sum + n print "sum=", sum, "\n" n = n + 1 end print "合計は ", sum, "です。\n" -------------------------------
------------program Start --------- printf("くだものを選択して下さい。\n") printf("1.りんご、 2.みかん、 3.かき、 4.いちご \n") a = gets.chomp kuda = a.to_i case kuda when 1 printf("りんごは、100円です。\n") when 2 printf("みかんは、30円です。\n") when 3 printf("かきは、50円です。\n") when 4 printf("いちごは、250円です。\n") else printf("そんなのありません。\n") end ------------Program End -----------
実行例
血液型を入力して下さい。
1. A型, 2. B型, 3. AB型, 4. O型
2
あたなは、柔軟性のある性格です。