*ブログに戻る →ここ です。


Rubyの学習 free164
真と偽の逆

↓Rubyのプログラムを実行すると以下のように表示される。

C:\RubyTest>ruby test_sada8-6.rb
入力された年齢は39です。
プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。
お酒とタバコは20歳からですので購入できます。

入力された年齢は39です。
プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。
シニアサービスのご利用は60歳からですので利用できません。

入力された年齢は39です。
プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。
シニアサービスのご利用は60歳からですので利用できません。

入力された年齢は39です。
プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。
シニアサービスのご利用は60歳からですので利用できません。




入力された年齢は60です。
シニアサービスは60歳からですのでご利用ができます。

入力された年齢は60です。
シニアサービスは60歳からですのでご利用ができます。


C:\RubyTest>



Friday,September,13,2013

プログラムの表示

=begin Friday,September,13,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_sada8-6.rb そして保存したファイル名を打ち込む。 =end #コメントテスト、ファイル名test_sada8-6テキスト #--------------------------------------------------- =begin ○偽(FALSE)の場合にのみthenからendまでのプログラムを実行する。 ○問題が発生した場合やエラー時のお知らせに使えそうですね。 unless 条件式 then 条件式が偽の時に実行する処理 end ○真(TRUE)と偽(FALSE)の2パターンも実行可能。 ○ただこれはif文でも書けるので存在理由に乏しい。 unless 条件式 then 条件式が偽の時に実行する処理 else 条件式が真の時に実行する処理 end if !(条件式) then 条件式が偽の時に実行する処理 else 条件式が真の時に実行する処理 end =end #! ruby -Ku require "kconv" _sadaOld = 39 #39が入力されたなら本来なら偽(FALSE)だから下段の実行式に下りるはずだが逆に作用するので上ってきている unless _sadaOld <= 20 then print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。\nお酒とタバコは20歳からですので購入できます。\n")) end print("\n") #39が入力されたなら本来なら偽(FALSE)だから下段の実行式に下りるはずだが逆に作用するので上ってきている unless _sadaOld >= 60 then print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。\nシニアサービスのご利用は60歳からですので利用できません。\n")) end print("\n") #39が入力されたなら本来なら偽(FALSE)だから下段の実行式に下りるはずだが逆に作用するので上ってきている unless _sadaOld >= 60 then print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。\nシニアサービスのご利用は60歳からですので利用できません。\n")) else print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("シニアサービスは60歳からですのでご利用ができます。\n")) end print("\n") #39が入力されたなら本来なら偽(FALSE)だから下段の実行式に下りるはずだが逆に作用するので上ってきている if !(_sadaOld >= 60) then print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。\nシニアサービスのご利用は60歳からですので利用できません。\n")) else print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("シニアサービスは60歳からですのでご利用ができます。\n")) end print("\n") _sadaOld = 16 #16が入力されたなら本来なら真(TRUE)だが逆に作用するので下の実行式に下りるのでスルーされる。 unless _sadaOld <= 20 then print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。\nお酒とタバコは20歳からですのでご購入できます。\n")) end print("\n") _sadaOld = 60 #60が入力されたなら本来なら真(TRUE)だが逆に作用するので下の実行式に下りるのでスルーされる。 unless _sadaOld >= 60 then print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。\nシニアサービスのご利用は60歳からですので利用できません。\n")) end print("\n") #60が入力されたなら本来なら真(TRUE)だが逆に作用するので下の実行式に下りる。 unless _sadaOld >= 60 then print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。\nシニアサービスのご利用は60歳からですので利用できません。\n")) else print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("シニアサービスは60歳からですのでご利用ができます。\n")) end print("\n") #60が入力されたなら本来なら真(TRUE)だが逆に作用するので下の実行式に下りる。 if !(_sadaOld >= 60) then print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("プログラム条件式的にはエラー偽(FALSE)、ただunlessを用い逆にしている。\nシニアサービスのご利用は60歳からですので利用できません。\n")) else print(Kconv.tosjis("入力された年齢は"), _sadaOld, Kconv.tosjis("です。\n")) print(Kconv.tosjis("シニアサービスは60歳からですのでご利用ができます。\n")) end print("\n")


* 参考にしたサイトは→ こちら です。

これは赤色の文字例です。

これは青色の文字例です。