こんにちは。
当ページにアクセスしてくださり、ありがとうございます。
この記事は、プログラミング言語「Ruby」についての記事になります。
【目次】
問題.1
以下のコードの2行目以降を、ワンライナーで書き直してください。
```Ruby
1 str = "is this a pen?"
2 if str.include?("?")
3 puts "yes, it is."
4 end```
ワンライナーの説明
何行にも書かれたコードを一つにまとめて、読みやすくすることです。
例えば、
```Ruby
1 if message == "プログラミング楽しい"
2 puts "その調子で頑張れ!"
3 end
```
上記のように3行のコードで成り立つif文でも、「ワンライナー」という方法をとると
```Ruby
1 puts "その調子で頑張れ!" if message == "プログラミング楽しい"
```
このように書き方は変わりますが、1行で書けるようになります。
メリットは、
❗️コードが、スッキリして読みやすくなる
一つしか思いつきませんでしたが(すみません)、職場で開発になると何百行ものコードが書かれていることもあるので、これが書けるのと書けないとで、コードの量・読みやすさが変わります。
覚えておいて損しない書き方です。
次の記事にも、「ワンライナー」について書いています。
【関連記事】
模範回答
```Ruby
1 str = "is this a pen?"
2 puts "yes, it is." if str.include?("?")```
解説していきます。
①「is this a pen?」という文字列を予め「str」という変数に格納します。
②if文を上記に記載したワンライナーの書き方に沿って書きましょう。
【条件式が正しい場合の処理】 if 【条件式】
ワンライナーは基本的に上記のような書き方です。
問題.2
fizzbuzzと言われる問題があります。
これは、1から100まで数を数える時に、3の倍数なら「fizz」、5の倍数なら「buzz」、ただし15の倍数なら「fizzbuzz」。
それ以外はその数を答えるものです。
例)
1
2
Fizz
4
.
.
これを実現するコードを記述してください。
ただし、elsifは利用使用しないものとします。
模範回答
```Ruby
1 puts "その調子で頑張れ!" if message == "プログラミング楽しい"2 num = 1
3
4 while num < 101
5 str = ""
6
7 if num % 3 == 0
8 str = str + "fizz"
9 end
10 if num % 5 == 0
11 str = str + "buzz"
12 end
13 if str == ""
14 str = str + num.to_s
15 end
16
17 puts str
18 num += 1
19 end```
解説していきます。
①1から100まで数える用に変数numを用意し、初期値1を格納します。
②そして、while文を使います。
while文がある事で、
while 【条件式】の結果が、false(正しくない、当てはまらない。という意味です)になるまで、処理を繰り返すことが出来ます。
ちなみに、while文はこれからよく使う構文です。(他の言語でも出てきます)
もしここで理解できなくても、これからプログラミングしていく上でたくさん出てきますので、安心してください(笑)
段々理解できるようになってきます。
③今回の問題で言いますと、このwhile文の中でやろうとしている事は、
if文を使って、変数numが、
3の倍数→strに「fizz」を格納
5の倍数→strに「buzz」を格納
どちらも当てはまらない→strにnum(to_sを使い文字列に変換)を格納
15の倍数→こちらは、3と5の倍数でもあるので、strに「fizzbuzz」が格納されています。
上記のようにif文を使い分けて記述します。
そして、最後にnum += 1 してカウントすることを忘れないようにしてください。
④これで、numが100を超えるまでwhile内の処理を繰り返します。
問題は以上となります、if文とwhile文は必須の知識なので、頑張って理解して頂ければとおもいます。
参考になれば幸いです。
最後まで読んでいただき、ありがとうございました。