*ブログに戻る →ここ です。
Rubyの学習 free168
範囲を指定して繰り返しを実行する。
↓Rubyのプログラムを実行すると以下のように表示される。 C:\RubyTest>ruby test_sada9-3.rb 繰り返しを開始する。 _sadaNum = 39990 _sadaNum = 39991 _sadaNum = 39992 _sadaNum = 39993 _sadaNum = 39994 _sadaNum = 39995 _sadaNum = 39996 _sadaNum = 39997 _sadaNum = 39998 _sadaNum = 39999 _sadaNum = 40000 繰り返しを終了する。 繰り返しを開始する。 _sadaNum = 39990 _sadaNum = 39991 _sadaNum = 39992 _sadaNum = 39993 _sadaNum = 39994 _sadaNum = 39995 _sadaNum = 39996 _sadaNum = 39997 _sadaNum = 39998 _sadaNum = 39999 繰り返しを終了する。 繰り返しを開始する。 _sadaNum = 500 _sadaNum = 501 _sadaNum = 502 _sadaNum = 503 _sadaNum = 504 _sadaNum = 505 _sadaNum = 506 _sadaNum = 507 _sadaNum = 508 _sadaNum = 509 _sadaNum = 510 _sadaNum = 511 _sadaNum = 512 繰り返しを終了する。 繰り返しを開始する。 _sadaNum = a _sadaNum = b _sadaNum = c _sadaNum = d _sadaNum = e _sadaNum = f _sadaNum = g _sadaNum = h _sadaNum = i _sadaNum = j _sadaNum = k _sadaNum = l _sadaNum = m _sadaNum = n _sadaNum = o _sadaNum = p _sadaNum = q _sadaNum = r _sadaNum = s _sadaNum = t _sadaNum = u _sadaNum = v _sadaNum = w _sadaNum = x _sadaNum = y _sadaNum = z 繰り返しを終了する。 繰り返しを開始する。 _sadaNum = Ax _sadaNum = Ay _sadaNum = Az _sadaNum = Ba _sadaNum = Bb _sadaNum = Bc _sadaNum = Bd _sadaNum = Be _sadaNum = Bf _sadaNum = Bg _sadaNum = Bh _sadaNum = Bi _sadaNum = Bj _sadaNum = Bk _sadaNum = Bl _sadaNum = Bm _sadaNum = Bn _sadaNum = Bo _sadaNum = Bp _sadaNum = Bq _sadaNum = Br _sadaNum = Bs _sadaNum = Bt _sadaNum = Bu _sadaNum = Bv _sadaNum = Bw _sadaNum = Bx _sadaNum = By _sadaNum = Bz _sadaNum = Ca _sadaNum = Cb _sadaNum = Cc 繰り返しを終了する。 繰り返しを開始する。 _sadaNum = a8 _sadaNum = a9 _sadaNum = b0 _sadaNum = b1 _sadaNum = b2 _sadaNum = b3 _sadaNum = b4 _sadaNum = b5 _sadaNum = b6 _sadaNum = b7 _sadaNum = b8 _sadaNum = b9 _sadaNum = c0 _sadaNum = c1 _sadaNum = c2 _sadaNum = c3 繰り返しを終了する。 繰り返しを開始する。 _sadaNum = 1:1:8 _sadaNum = 1:1:9 _sadaNum = 1:2:0 _sadaNum = 1:2:1 _sadaNum = 1:2:2 _sadaNum = 1:2:3 _sadaNum = 1:2:4 _sadaNum = 1:2:5 _sadaNum = 1:2:6 _sadaNum = 1:2:7 _sadaNum = 1:2:8 _sadaNum = 1:2:9 _sadaNum = 1:3:0 _sadaNum = 1:3:1 _sadaNum = 1:3:2 _sadaNum = 1:3:3 繰り返しを終了する。 繰り返しを開始する。 _sadaNum = xx _sadaNum = xy _sadaNum = xz _sadaNum = ya _sadaNum = yb _sadaNum = yc _sadaNum = yd _sadaNum = ye _sadaNum = yf _sadaNum = yg _sadaNum = yh _sadaNum = yi _sadaNum = yj _sadaNum = yk _sadaNum = yl _sadaNum = ym _sadaNum = yn _sadaNum = yo _sadaNum = yp _sadaNum = yq _sadaNum = yr _sadaNum = ys _sadaNum = yt _sadaNum = yu _sadaNum = yv _sadaNum = yw _sadaNum = yx _sadaNum = yy _sadaNum = yz _sadaNum = za _sadaNum = zb _sadaNum = zc 繰り返しを終了する。 繰り返しを開始する。 _sadaNum = zyx _sadaNum = zyy _sadaNum = zyz _sadaNum = zza _sadaNum = zzb _sadaNum = zzc _sadaNum = zzd _sadaNum = zze _sadaNum = zzf _sadaNum = zzg _sadaNum = zzh _sadaNum = zzi _sadaNum = zzj _sadaNum = zzk _sadaNum = zzl _sadaNum = zzm _sadaNum = zzn _sadaNum = zzo _sadaNum = zzp _sadaNum = zzq _sadaNum = zzr _sadaNum = zzs _sadaNum = zzt _sadaNum = zzu _sadaNum = zzv _sadaNum = zzw _sadaNum = zzx _sadaNum = zzy _sadaNum = zzz 繰り返しを終了する。 繰り返しを開始する。 1、失敗している。繰り返しを終了する。 繰り返しを開始する。 2、失敗している。繰り返しを終了する。 繰り返しを開始する。 3、失敗している。繰り返しを終了する。 繰り返しを開始する。 4、失敗している。繰り返しを終了する。 繰り返しを開始する。 5、失敗している。繰り返しを終了する。 繰り返しを開始する。 6、失敗している。繰り返しを終了する。 C:\RubyTest>
Thursday,September,19,2013プログラムの表示
=begin Thursday,September,19,2013 ○値から謎の多いクラス名を調べてみる。 ルビーの値(オブジェクト)が所属するクラス Numeric (わからない) Float (浮動小数点数) Integer (わからない) Bignum (大きな整数) Fixnum (整数) 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-3.rb そして保存したファイル名を打ち込む。 =end #コメントテスト、ファイル名test_sada9-3テキスト.txt(メモ帳の下書き名) #--------------------------------------------------- =begin 学習の概略 for 変数 in オブジェクト do 実行する処理1 実行する処理2 end イメージとしてはクラスの外に飛び出しているオブジェクトが所属するクラスのメソット「each」に、 範囲を指定した数字文字に対し他の演算子と連携し実行処理するように指示を出す。 メソット「each」は演算子「for」と連携して、指定した範囲内で変数に値を紐づけていく。 したがってメソット「each」が存在しないクラスのオブジェクトでは値の範囲を指定する事ができない。 範囲を指定する演算子「39_990..40_000」と、 範囲を指定した上で繰り返し値を処理していく「for」句を組み合わせることで繰り返し出力する。 39990を取得しend、そして先頭に戻る 39991を取得しend、そして先頭に戻る 39992を取得しend、そして先頭に戻る 39993を取得しend、そして先頭に戻る 39994を取得しend、そして先頭に戻る 39995を取得しend、そして先頭に戻る 39996を取得しend、そして先頭に戻る 39997を取得しend、そして先頭に戻る 39998を取得しend、そして先頭に戻る 39999を取得しend、そして先頭に戻る 40000を取得しend、そして先頭に戻るが範囲外なので終了 範囲を指定する演算子「39_990...40_000」は上記と似ているがドットが1つ増えた3つのドットである。 これは最後の尻尾の40000を取得しないで出力する演算子である。 範囲を指定する型は、文字列も使える。 お手本にあった文字列も試したがいくつか失敗してしまった。 原因は分らないが、書き残すことにする。 =end #! ruby -Ku require "kconv" print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in 39_990..40_000 do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("繰り返しを終了する。\n")) print("\n") #○演算子「first...last」は最後の値を含まない。 print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in 39_990...40_000 do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("繰り返しを終了する。\n")) print("\n") #○○下記はメソットではなく、クラスの外から直接クラス内のメソットにアクセスしている。 #○○機能は「39_990..4000」と同じ。 print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in Range.new(500,512,) do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("繰り返しを終了する。\n")) print("\n") #通常のオブジェクトに戻る print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "a".."z" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "Ax".."Cc" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "a8".."c3" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "1:1:8".."1:3:3" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "xx".."zc" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "zyx".."zzz" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("繰り返しを終了する。\n")) print("\n") #--------------------------- #以下は失敗 print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "zz".."aaa" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("1、失敗している。繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "zzx".."aaaa" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("2、失敗している。繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "Zx".."Aac" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("3、失敗している。繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "z".."ac" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("4、失敗している。繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "zz".."aac" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("5、失敗している。繰り返しを終了する。\n")) print("\n") print(Kconv.tosjis("繰り返しを開始する。\n")) for _sadaNum in "Zx".."AAc" do print("_sadaNum = ", _sadaNum, "\n") end print(Kconv.tosjis("6、失敗している。繰り返しを終了する。\n")) print("\n")
* 参考にしたサイトは→ こちら です。
これは赤色の文字例です。
これは青色の文字例です。