新しいアカウントで始めました。

身の回りの出来事や写真が中心です。

Rubyで素数のジェネレータ?見つけましたが…

2021-09-22 06:54:16 | Ruby

 n+=1 whileのとこが分かりません。whileはある条件のうちは、繰り返しを行うものですから、条件と繰り返しの部分が逆に成ってませんか?n+=1の後に改行を入れるとエラーになります。もしcametan_42さん、読んでくれてるなら、教えてもらえませんか?

 それとClassの定義で[]があるのですが、コメントにしても大丈夫のようです。何故、関数にしてるのでしょうか?


コメント (2)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Rubyをイジって、遊んでまし... | トップ | RubyとPython比較してみまし... »
最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
while修飾子 (cametan_42)
2021-09-22 07:56:28
> n+=1 whileのとこが分かりません。whileはある条件のうちは、繰り返しを行うものですから、条件と繰り返しの部分が逆に成ってませんか?

Rubyではwhileは二つあって、1つ目はいわゆるwhile文。もう一つは、ここで使われてるwhile式です。
正確にはwhile修飾子と言うみたいですが、

while修飾子:
https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#while

式 while 式

と記述できる。

要するに、C言語の条件式でも三項演算子、と言うのがありますが、それのwhile版です。
ワンライナーでwhileを含む式が記述出来、また、そのまま結果を何かに代入出来る、と言うようなショートカットを構成する事が可能な模様です。

なかなか凄い機能です(笑)。
ある意味、Pythonのリスト内包表記とかにやってる事が近いかも、ですね。
返信する
cametan_42さん、コメントありがとうございます (isam)
2021-09-22 08:40:50
 ありがとうございます。お陰様でわかりました。普通の言語の、whileと違いました。while修飾子と言うんですね。「Rubyプログラミング入門」を改めて見直してみると、ありました。
 A while BはB,A,B,A…と繰り返し、初めてBが偽に成ったとき停止する。これですね。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Ruby」カテゴリの最新記事