『たった2日でできるRuby』ここまでの復習(2日目)の解答例です。
i = 11 while i < 20 do puts(i) i = i + 1 end
i = 10 while i <= 20 do puts(i) i = i + 2 end
num = 0 while true do puts("整数を入力してください。") num = num + gets.to_i if num >= 100 then break end end puts("入力された値の合計が100を超えました。") puts("合計は #{num} です。")
puts("和を開始する数値を入力してください。") from_number = gets.to_i puts("和を終了する数値を入力してください。") to_number = gets.to_i sum = 0 for i in (from_number..to_number) sum = sum + i end puts("#{from_number} から #{to_number} までを足しあわせた数は #{sum} です。")
(始..終)で範囲を指定できるのを利用して、for文でループを作っています。変数iには、開始する数から終了する数までが順に格納されます。
i = 1 j = 1 while i < 10 do while j < 10 do printf("%3d", i * j) j = j + 1 end puts() i = i + 1 j = 1 end
「%3d」は、3桁の範囲で数値を表示する意味です。7行目のputs()は、改行として使っています。内側のwhileループを抜けるとき、jの値を初期化しないと、おかしなことになってしまいます。
number = [] puts("整数を5つ入力してください。") 5.times do |i| number[i] = gets.to_i end puts("小さい順に並べます。") sorted_number = number.sort 5.times do |i| puts("#{i + 1}: #{sorted_number[i]}") end
1行目で配列numberを初期化しています。ソートした結果は配列sorted_numberに代入しています。