超入門者向けのRubyサンプルコード記事です。問題と、解答例となるサンプルコードをセットに公開しています。難しい用語の解説は控えめに、まずは動かしてみたい人向けのコンテンツです。
はじめに
どうもMizokeiです。Ruby超入門シリーズです。本記事の実行環境は以下です。
実行環境
- Windows10 64bit
- Ruby 2.5
問題と解答例をセットに公開
問題と解答例としてサンプルコードをセットに公開します。サンプルコードを、コピペして実行し動作を確認してみましょう。
とりあえず、動かしてみることが目的なので、専門用語などの難しい話は、別途参照書などを御覧ください。
問題
リスト内包表記を用いて、動的に文字列のリストを作成せよ。リスト作成時の仕様は以下のものとする。
- 1から50まで1刻みで数値をカウントアップする
- カウントアップが3の倍数の場合:「Fizz」
- カウントアップが5の倍数の場合:「Buzz」
- カウントアップが5と3の倍数の場合:「FizzBuzz」
- 上記以外の場合:数値のまま文字列
上記のリストを作成し、putsで中身を表示せよ。
※「リスト内包表記」はPythonで表現される用語であるが、Rubyの場合どうなるかを想定してコードを記載しています。
出力結果
0 1 2 |
["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz", "16", "17", "Fizz", "19", "Buzz", "Fizz", "22", "23", "Fizz", "Buzz", "26", "Fizz", "28", "29", "FizzBuzz", "31", "32", "Fizz", "34", "Buzz", "Fizz", "37", "38", "Fizz", "Buzz", "41", "Fizz", "43", "44", "FizzBuzz", "46", "47", "Fizz", "49", "Buzz"] |
解答例 サンプルコード
0 1 2 3 4 5 6 |
#リスト内包表記で動的にリストを定義 dynamic_list = (1...51).map {|i| if (i%15).zero? then 'FizzBuzz' elsif (i%3).zero? then 'Fizz' elsif (i%5).zero? then 'Buzz' else "#{i}" end } #リストの中身を表示する puts "#{dynamic_list}" |
関連記事
【Ruby超入門】クラスを作成してみよう
【Ruby超入門】値の交換を実装してみよう
【Ruby超入門】ヒープソートを実装しよう【アルゴリズム】