プログラムの流れを変える ``制御構造をあわらす命令''を使用する。 制御構造を表す命令には、``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
あたなは、柔軟性のある性格です。