[お題にTRY] 九九の表示 #ruby

2020年6月2日

Ruby テクノロジー プログラミング 特集

たま〜に朝寝坊するけど、某国営放送の朝ドラは、欠かさず見ている、ユゲタです。 九九プログラミングも、5日目を迎えました。 プログラム言語を実行する環境構築などは、無視して進めていますが、dockerやvagrantを使えば、簡単に用意できるので、このスタートラインに立てていない人がいたら、コメントくださいませ。

本日のIT謎掛け

「Ruby」と、かけまして・・・ 「廃線電車」と、ときます。 そのココロは・・・ 線路(on rails)に乗っていないと、使いづらいかもしれません。

Rubyで九九

早速、プログラミングしてみます。 for i in 1..9 do for j in 1..9 do print(j, " × ", i, " = ", (j*i) , "\t") end print("\n") end そしてターミナルで、実行 $ ruby 001.rb 1 × 1 = 1 2 × 1 = 2 3 × 1 = 3 4 × 1 = 4 5 × 1 = 5 6 × 1 = 6 7 × 1 = 7 8 × 1 = 8 9 × 1 = 9 1 × 2 = 2 2 × 2 = 4 3 × 2 = 6 4 × 2 = 8 5 × 2 = 10 6 × 2 = 12 7 × 2 = 14 8 × 2 = 16 9 × 2 = 18 1 × 3 = 3 2 × 3 = 6 3 × 3 = 9 4 × 3 = 12 5 × 3 = 15 6 × 3 = 18 7 × 3 = 21 8 × 3 = 24 9 × 3 = 27 1 × 4 = 4 2 × 4 = 8 3 × 4 = 12 4 × 4 = 16 5 × 4 = 20 6 × 4 = 24 7 × 4 = 28 8 × 4 = 32 9 × 4 = 36 1 × 5 = 5 2 × 5 = 10 3 × 5 = 15 4 × 5 = 20 5 × 5 = 25 6 × 5 = 30 7 × 5 = 35 8 × 5 = 40 9 × 5 = 45 1 × 6 = 6 2 × 6 = 12 3 × 6 = 18 4 × 6 = 24 5 × 6 = 30 6 × 6 = 36 7 × 6 = 42 8 × 6 = 48 9 × 6 = 54 1 × 7 = 7 2 × 7 = 14 3 × 7 = 21 4 × 7 = 28 5 × 7 = 35 6 × 7 = 42 7 × 7 = 49 8 × 7 = 56 9 × 7 = 63 1 × 8 = 8 2 × 8 = 16 3 × 8 = 24 4 × 8 = 32 5 × 8 = 40 6 × 8 = 48 7 × 8 = 56 8 × 8 = 64 9 × 8 = 72 1 × 9 = 9 2 × 9 = 18 3 × 9 = 27 4 × 9 = 36 5 × 9 = 45 6 × 9 = 54 7 × 9 = 63 8 × 9 = 72 9 × 9 = 81 for文の書き方は、pythonに似ていますが、終了宣言が無いpythonと比べて、endで締めくくるrubyの方が個人的にはしっくりします。

少しだけリファクタリング

上記を少し効率的に書き直してみたいと思います。 for i in 1..9 do arr = [] for j in 1..9 do str = "%s × %s = %s" % [j ,i , (j*i)] arr.push(str) end print(arr.join("\t") , "\n") end ※結果は、上記と同じです。 直接printするのではなくて、配列に格納して、joinすることで、区切り文字を毎回生成する無駄がなくなります。 文字列の扱いも、配列の扱いも、なんともスッキリと書けるruby言語です。

入力モード対応

pythonと同じように、入力値を反映してみたいと思います。 print("Input Number : ") kuku = gets.to_i for i in 1..kuku arr = [] for j in 1..kuku str = "%s × %s = %s" % [j ,i , (j*i)] arr.push(str) end print(arr.join("\t") , "\n") end $ ruby 003.rb Input Number : 5 1 × 1 = 1 2 × 1 = 2 3 × 1 = 3 4 × 1 = 4 5 × 1 = 5 1 × 2 = 2 2 × 2 = 4 3 × 2 = 6 4 × 2 = 8 5 × 2 = 10 1 × 3 = 3 2 × 3 = 6 3 × 3 = 9 4 × 3 = 12 5 × 3 = 15 1 × 4 = 4 2 × 4 = 8 3 × 4 = 12 4 × 4 = 16 5 × 4 = 20 1 × 5 = 5 2 × 5 = 10 3 × 5 = 15 4 × 5 = 20 5 × 5 = 25 inputさせたい箇所に"gets"を命令するだけなんですね。 受け取り値が文字列の時は、"gets.to_s"数値の場合は、"gets.to_i"とすると、入力後に方も整えてくれるので、便利に使えます。 このレベルであれば、rubyもチョロいですねwwwww

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。