*ブログに戻る →ここ です。
Rubyの学習 free172
無限ループ
↓Rubyのプログラムを実行すると以下のように表示される。 C:\RubyTest>ruby test_sada9-7.rb 変数_sadaNum = 1 変数_sadaNum = 2 変数_sadaNum = 3 変数_sadaNum = 4 変数_sadaNum = 5 変数_sadaNum = 6 変数_sadaNum = 7 変数_sadaNum = 8 変数_sadaNum = 9 変数_sadaNum = 10 変数_sadaNum = 11 変数_sadaNum = 12 変数_sadaNum = 13 変数_sadaNum = 14 変数_sadaNum = 15 変数_sadaNum = 16 変数_sadaNum = 17 変数_sadaNum = 18 前回は出力に日本語変換していなかったので再度テストを行なう、 でも計算結果は引き続きおかしい 0.6.step(3.8, 0.2)Numericクラスのstepメソッドを使った 0.6に0.2を繰り返し足していくが、3.8で停止する。 変数_sadaNum = 0.6 変数_sadaNum = 0.8 変数_sadaNum = 1.0 変数_sadaNum = 1.2 変数_sadaNum = 1.4 変数_sadaNum = 1.6 変数_sadaNum = 1.8 変数_sadaNum = 2.0 変数_sadaNum = 2.2 変数_sadaNum = 2.4 変数_sadaNum = 2.6 変数_sadaNum = 2.8000000000000003 ←日本語に変換してもおかしい 変数_sadaNum = 3.0 変数_sadaNum = 3.2 変数_sadaNum = 3.4000000000000003 ←日本語に変換してもおかしい 変数_sadaNum = 3.6 変数_sadaNum = 3.8 0.6.step(3.8, 0.2)Numericクラスのstepメソッドを使った 0.6に0.2を繰り返し足していくが、3.8で停止する。 変数_sadaNum = 0.6 変数_sadaNum = 0.8 変数_sadaNum = 1.0 変数_sadaNum = 1.2 変数_sadaNum = 1.4 変数_sadaNum = 1.6 変数_sadaNum = 1.8 変数_sadaNum = 2.0 変数_sadaNum = 2.2 変数_sadaNum = 2.4 変数_sadaNum = 2.6 変数_sadaNum = 2.8000000000000003 ←日本語に変換してもおかしい 変数_sadaNum = 3.0 変数_sadaNum = 3.2 変数_sadaNum = 3.4000000000000003 ←日本語に変換してもおかしい なんでよ? 変数_sadaNum = 3.6 変数_sadaNum = 3.8 C:\RubyTest>
Sunday,September,22,2013プログラムの表示
=begin Sunday,September,22,2013 ○値から謎の多いクラス名を調べてみる。 ルビーの値(オブジェクト)が所属するクラス Numeric (説明はfree171.html)[step]メソッドはNumericクラスである。 [step]メソッドは、任意に決めた浮動小数点の値を繰り返し足していく事ができるメソット。 Float (浮動小数点数) Integer (説明はfree170.html)[times][upto][downto]メソッドはIntegerクラス Numericのサブクラスでもある。 このメソッドは要素などの値の範囲を指定し、for句(演算子)と連動させる事で変数へ繰り返し値を名札 付けしながらブロック内のプログラムを実行させる。 Bignum (大きな整数) Fixnum (整数) Kernel [loop]メソッドはKernelクラスである。無限に繰り返しを行なう。(今回学習した) PHPでの値の型 string (文字句) integer (数字) double (小数点) free147.php ←ここで試した。 謎の多いクラスを調べる方法は下記、またの機会に別のページで試してみます。 #! ruby -Ku print("定近です。".class())←クラスを調べるには、これを使って調べます。 print("\n") #! ruby -Ku ← の「u」とは、UTF-8 のこと(文字化けを回避します)。 s or S Shift_JIS e or E EUC-JP u or U UTF-8 n or N NONE(ASCII) 「require」メソッドで「kconv」ライブラリを読みんで、モジュール関数「Kconv.tosjis()」 を使用することにより表示の時に Shift_JIS に変換している。(メソットというからにはクラスがあるんでしょうね) まだきちんと理解できていません。 保存するときは、文字コードセットを UTF-8 にすること。 サクラエディタを使用しています。 コマンドプロンプトを開きます。 C:Documents and Settings\User> C:Documents and Settings\User>cd C:\rubytest と入力する。「cd」カレントディレクトリの略。現在のフォルダという意味(フォルダは任意の名前で自作した) C:\RubyTest>ruby test_sada9-7.rb そして保存したファイル名を打ち込む。 =end #コメントテスト、ファイル名test_sada9-7テキスト #--------------------------------------------------- =begin こことあわせて上記のクラスの説明を更新した。 [loop]メソッドはKernelクラスである。 無限ループを行います。 無限ループを抜けるためにbreakを使用する。変数に格納される値が一定以上になるとbreakにより繰り返しから逃れる。 =end #! ruby -Ku require "kconv" _sadaNum = 1 loop{ print(Kconv.tosjis("変数_sadaNum = "), _sadaNum, Kconv.tosjis("\n")) num += 1 if _sadaNum > 70 then break end } print("\n") print("\n") #前回は出力に日本語変換していなかったので再度テストを行なう print(Kconv.tosjis("前回は出力に日本語変換していなかったので再度テストを行なう、 でも計算結果は引き続きおかしい 0.6.step(3.8, 0.2) 0.6に0.2を繰り返し足していくが、3.8で停止する。\n")) 0.6.step(3.8, 0.2){|_sadaNum| print(Kconv.tosjis("_sadaNum = "), _sadaNum, Kconv.tosjis("\n")) } print("\n") print(Kconv.tosjis("0.6.step(3.8, 0.2) 0.6に0.2を繰り返し足していくが、3.8で停止する。\n")) 0.6.step(3.8, 0.2) do |_sadaNum| print(Kconv.tosjis("_sadaNum = "), _sadaNum, Kconv.tosjis("\n")) end
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。