- 本日の作業内容
- 出席確認
電子メールで出席確認をします.宛先など以下の情報を用いてメールを作成し,
出席申告してください.なお,キーワードは授業中に紹介します.
提出形式
宛先 |
justice@mag.shimane-u.ac.jp |
件名 |
AttendR11-26_ruby_s0340** |
本文 |
学生番号
氏名
キーワード
|
(改行) (改行)
キーワードは授業中に紹介 |
注意 |
「件名」および「添付書類名」の**をそのままにしないで,必ず自分の学生番号
に修正して下さい.また,ABクラス別は指示にしたがって下さい.
|
- unless 文
if と意味が逆になるのが unless 文です.これも英語の意
味そのままですので,「もし〜でなければ」となります.すなわち,if
文では条件が「真」のときに処理が実行されましたが,unless
では,条件が「偽」のときに処理が行われます.
a = 10
b = rand(2)
if b != 0
div = a / b
else
div = "不可能"
end
printf "a = %d, b = %d\n", a, b
print "a / b = ", div, "\n"
|
上の例では if 文を使用しています.これを変
換してみると,次の例のようになります.
a = 10
b = rand(2)
unless b == 0
div = a / b
else
div = "不可能"
end
printf "a = %d, b = %d\n", a, b
print "a / b = ", div, "\n"
|
unless 文においても else は使えますが,elsif
に相当するものはありません.注意してください.
- case 文
いくつかの選択肢について場合分けする場合に,elsif を用いること
が可能であることは先週紹介しました.条件式によってはここで紹介する
case 文を使用する方が簡単になる場合もあります.
次の例は,m
として与えた月が何日あるかを返すスクリプトです.
m = rand(12) + 1
case m
when 2
d = "28 or 29"
when 4,6,9,11
d = "30"
else
d = "31"
end
printf "%d月は%s日.\n", m, d
|
when による条件指定はいくつでも置くことが可能です.また,上記の
例のように,一つの when のところに複数の条件を置くことも可能で
す.
when による場合分けはより柔軟な指定方法が可能です.
次の例は範囲指定するものです.
a = (rand(30) - 10) / 10.0
case a
when 0..1
d = "in"
else
d = "out of"
end
printf "The number is %s the range 0 ≦ x ≦ 1.\n", d
|
この例では引数として与えた数値が0と1の範囲内にあるかを判定しています.す
なわち,0 ≦ x ≦ 1 を判定しています.注意するのは,範囲指定でも
両側が決まっていないもの,例えば,正か負かを判定するような場合にはちょっ
とした工夫が必要なことです.数値が正であるか,負であるか,それとも0であ
るかを判定するには,次のようにします.
a = (rand(30) - 10) / 10.0
case a
when 0
d = "zero"
when 0..(1.0/0)
d = "positive"
else
d = "negative"
end
printf "The number is %s.\n", d
|
また,「以上」や「以下」の判定は実現できますが,「大なり」「小なり」は工
夫が必要です.上の例では先に0であるかを判定させておいて,その後で正の判
定に移るようにしています.
- 演習
- 例題の改良
上のふたつのスクリプトは乱数を利用していますが,発生させた乱数が何である
かを表示する部分が無いために,正しい処理となっているのか確認できません.
改良してみましょう.
- 元号判定
先週の授業で紹介した西暦から元号への変換について,case 文に変換
することを試してみましょう.年の判定の方をcase 文に変換し,月の
方は if 文のままで試してみるのが,簡単です.最初の年月日の指定
は次のようにするのが良いでしょう.ただ,動作を確認するためには重要な年月
を当てて試す必要があるので,必要に応じてコメントアウトして使用することも
練習してください.
year = rand(150) + 1868
month = rand(12) + 1
|
解答例は後から紹介します.
- 小テスト
授業の終わりに小テストを実施します.アナウンスに注意していて下さい.
再履修クラス小テスト
- 宿題
宿題に関する案内が授業の終わりに紹介されます.注意にしたがって提出してく
ださい.
再履修クラス宿題
- 本日の用語