読者です 読者をやめる 読者になる 読者になる

ループ2

1から10を出力させるプログラムを書いてみましょう

fig=1
until fig>10
    puts fig + 1
end

puts 'さようなら。また来てね'

上のコードを実行させたら "2" が出力エンドレスになってしまい大変困った。下述のキーを押せばストップします。覚えておくといいでしょう。

  • Control + C

トライ2

fig=1
until fig == 10
    puts fig + 1
end

puts 'さようなら。また来てね'

Oh, これもダメ。エンドレス。うーんうーん。

トライ3

降参気味...時間置いて再トライ。

fig= ''
gets = number.chomp
puts number from 1 to 10
end

puts 'さようなら。また来てね'

さすがにこれはなかった。そうだよねー英語じゃないしなあ…

whileend.rb:2: warning: parenthesize argument(s) for future version
whileend.rb:2: warning: parenthesize argument(s) for future version
whileend.rb:2: syntax error, unexpected tIDENTIFIER, expecting $end
puts fig from 1 to 10
                  ^
moomin:ProgrammingRuby tomomi$ ruby whieend.rb
ruby: No such file or directory -- whieend.rb (LoadError)

トライ4

降参!
と思ったら。考え方のコツありがとうございます感謝!

ループを書くときは、そのループの中でどの変数を変化させるか、ということを考えると良いと思います。前の問題では、inputという変数の値を変えていって、"さようなら"になるまでループしていますよね。
今回はどの変数の値を変えますか? また、変えるにはどうしたらいいでしょうか。

そうですよね。今回ですと、こうじゃないんかしら?

  • 変化させる変数:fig (を+1ずつ10までループ)

うーということは、もしかして:演算子!以前C言語本を読んだ際、演算子のリファレンスを見たことがある( C言語演算子 )

fig= 1
 until fig > 10
 puts fig
 fig+= 1 
end
 
puts 'さようなら。また来てね'

できましたやった!2日がかり、これはうれしい!演算子かー使えるなー&ことばひとつひとつを分解して書くことがとても重要ですね。

moomin:ProgrammingRuby tomomi$ ruby whileend.rb
1
2
3
4
5
6
7
8
9
10
さようなら。また来てね

さようなら〜また来てね。