LoginSignup
0
0

More than 1 year has passed since last update.

Ruby 文字列を「改行して」繰り返す

Posted at

はじめに

Ruby学習の備忘録です。

文字列を繰り返す

Rubyにて「文字列を繰り返してください」は、
よくある問題です。

確か文字列に対して演算子を使えば
可能だったんじゃないかな…というわけでやってみました。

sample.rb
def hello
  puts "こんにちは!" * 3
end

hello()
出力結果
こんにちは!こんにちは!こんにちは!

迫る勢いのこんにちは!が出力されました。

putsメソッドは本来、改行を加えて出力されますが
どうやら演算子を使うと文字列が連結されてしまうんですね〜

確かに繰り返しているんだけど、
求めていたのは改行された「こんにちは!」でした。

特殊文字「\n」を使う

そこで使うのが\n
改行したいときに使える特殊文字です。

注意すべきは、ダブルクオートで囲むこと。
シングルクオートでは、ただの文字列として出力されてしまいます。

ダブルクオートで囲んだ場合
sample.rb
def hello
  puts "こんにちは!\n" * 3
end

hello()
出力結果
こんにちは!
こんにちは!
こんにちは!
シングルクオートで囲んだ場合
sample.rb
def hello
  puts 'こんにちは!\n' * 3
end

hello()
出力結果
こんにちは!\nこんにちは!\nこんにちは!\n

\n ←「やあ!」って感じに見えなくもないけど🙋‍♂️(笑)

timesメソッドでさらにスッキリ書く

timesは、整数オブジェクトに対して呼び出すことができるメソッドです。
整数の値だけ、ブロック内の処理が繰り返されます。
単純なものだと、ブロックパラメータなしで実行可能。
(ブロックとかブロックパラメータが何かというのはここでは割愛)

sample.rb
3.times do
  puts "こんにちは!"
end

なお、do~endを省略した書き方、{~}を使うとさらにスッキリ!

sample.rb
3.times { puts "こんにちは!" }
出力結果
こんにちは!
こんにちは!
こんにちは!

あ、そういえば\n書いてないけど、ちゃんと改行されましたね〜
演算子がなければ、putsメソッドは
改行を加えて出力されることも改めて確認できました👏

おわりに

こんなところで疑問を感じる人はいないかもしれませんが😂
なんとなく〜で進んでつまずいた経験がたくさんあるので、
ほんの小さなことでも備忘録として残すのは、無駄ではない…はず。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0