#!/usr/bin/ruby sum = 0 while true print "足したい数は(終了はq): " <== 教科書と異なります。 line = gets.chomp if line == "q" then break end sum += line.to_i printf("これまでの合計は%dです\n",sum) end printf("%dです\n",sum)
キーボードから文字を入力し ``Enter''キーを押すと、改行コードも変数lineに 代入されてしまう。 変数や文字列の最後の改行コードを取り去るのに ``chomp''を最後に付けている。
#!/usr/bin/ruby a = 18 b = 5 print a + b ,"\n"と書くと、計算結果が帰ってくる。 では、以下のように書くとどうなるか?
#!/usr/local/bin/ruby a = "18" b = "5" print a + b ,"\n"全くおかしな値が帰ってきました。 さて、この違いは何でしょうか? "と" で囲った部分は、文字列を表す。 次の節で詳しく説明しますが、ある機能をもったものを ``オブジェクト''と言います。 上のプログラムの a = 18 では、a は 数値18を表すオブジェクトとなります。 その次のプラグラムの a = ``18'' では、a は文字を表すオブジェクトとなりま す。
では、その文字を表すオブジェクトを、数値に変換するにはどうするか?
#!/usr/bin/ruby a = "18" b = "5" print a + b ,"\n" print a.to_i print b.to_i print a.to_i + b.to_iこのプログラムの ``.to_i''の部分が整数に変換している部分です。 文字列オブジェクトを数値オブジェクトに変換するメソッドを ``.to_i''と 言います。 型の変換については、セクション 6を参照して下さい。
"真偽値"とは 「条件が成り立つかどうか」を判断したもの。
4>3 --> true 3>4 --> false 以下のプログラムを入力し、確かめる。 --------------------------- print 3 > 4, "\n" print 3 < 4 ,"\n" -------------------------- どんな値が表示されるか?