• ベストアンサー

【Ruby】基本的な質問 数字をローテーション

012 012 012 ..... 0、1、2と数値をローテーションさせたいです。 そこで以下の様に書いてみました。 r=0 loop do puts r r=r<3 ? r+1 : 0 sleep 1 end 012 3 012 3 012 3 ..... になってしまいます。 以下の様に書けば良いのですが、 r=0 loop do puts r r+=1 r=r<3 ? r : 0 sleep 1 end どうして、最初の式はダメなのでしょう? なんか理解できません。 以上、よろしくご指導の程お願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.1

r=r<3 ? r+1 : 0 rが2だったら、r<3が真なので、r+1 つまり3になります。 r=r<2 ? r+1 : 0 では?

kingfruits
質問者

補足

notnotさん、ご回答有り難うございます。 なんか、混乱してました。もう大丈夫です。スッキリしました。 ときどき、変な所で、頭の中がループしちゃうのです。そんなときは、ココがとても助かります。 notnotさんには、いつもお世話になってる気がします。ありがとうございました。

関連するQ&A