繰り返しのfor文をC#とRubyで比べてみる
エンジニアの皆さん、こんにちは!
そうでない方も読んでいただきありがとうございます。
今回のテーマはfor
今回のテーマは、繰り返し構文のforです。
私は新人研修のときに習ったので、基本的な構文の1つでしょう。
なのに、Rubyで書いていたらなんかしっくりこなかったんですね。
特にこれ
for count in 1..0
1から始まって0で終わる。。。?
これが成り立つ理由がわかりませんでした。
そんなあるとき、C#で書いていたら気づきました。
この構文何の問題もない!
って。
なので、C#とRubyの構文を比べながら見ていきましょう。
インクリメントのfor
いわゆる単純なインクリメントするfor文をC#で書くとこうなります。
for(int count = 0; count <= 5; count++)
0から始まって0、1、2、3、4、5と6回ループする構文ですね。
ではこれをRubyで書くとこうなります。
for count in 0..5
デクリメントのfor
では続いてデクリメントのforです(インクリメントって言い慣れているのに、デクリメントってどうもしっくり来ない。。笑)。
あまり使う場面は多くないかもしれませんが、別に0から始めなくていいし、インクリメントしかしてはいけないわけではありません。
それでは、どうぞ!
C#で書くとこうなります。
for(int count = 5; count >= 0; count--)
5から始まって、0以上の間だけ繰り返されるので、5、4、3、2、1、0と6回ループします。
では同じくRubyで書いてみましょう。
for count in 5..0
これも5から始まって0で終わります。
ここで気づいた!
みなさん、覚えていますでしょうか。最初にお見せしたしっくりこなかったあれを。
for count 1..0
そうです!これはデクリメントだったんです!
ちなみに、最後の0が含まれるか否かが気になると思いますが、
「1..0」は「count >= 0」と同じなので含みます。
「1...0」と書いたら「count > 0」と同じなので含みません。
最後に
まさか、C#やっていた経験がここで活きてくるとは思いませんでした笑
言語間の違いを並べてみると面白いですね。
下記サイトを参考にさせていただきました<m(__)m>
https://www.javadrive.jp/ruby/for/index3.html
https://www.javadrive.jp/ruby/for/index4.html