目次に戻る  前のページへ  次のページへ


ものを数字や文字で扱うために --変数と型--

  1. ちょっと計算を

    数学が得意で無い人にはちょっと恐縮ですが,次のような計算をしてみましょう.

    1から100までの連続する整数の和を求めなさい.ただし,1から n までの 数の和を求める次の公式を用いる.

    n       n (n + 1)
    Σ k  =  --------------
    k=1       2

    手で計算するのは面倒なので,Rubyを使って計算させます.四則演算の記号は後 で詳しく紹介しますが,+が足し算,*がかけ算,/が割算です.

    puts 100 * (100 + 1) / 2
    

    これを実行すると,答えの「5050」が得られます.では,次に1000までの和を求 めることにするとどうでしょうか.もちろん,先ほどのスクリプトの数値を変更 すれば簡単に計算できるのですが,100が2回出ているので2ヵ所修正する必要が あります.ちょっと面倒ですね.数学公式のように文字 (変数) を使った方が便 利では無いでしょうか?

    ごらんのように puts の後には数式のような形のものも使用すること が出来ます.

  2. 変数

    スクリプトを次のように修正します.

    n = 100
    sum = n * (n + 1) / 2
    
    puts sum
    

    このように文字を使って計算を行うと,一ヶ所の修正で済みます.

    実際のプログ ラムにおいても,いろいろな場所で同じ数値や文字を何度も扱うことが多いので, 変数を使ってスクリプトを作成することが必須です.では,このスクリプトを見 ながら,重要な点について,いくつか確認していきましょう.

  3. 代入

    スクリプトの1行目は「代入」と呼ばれる操作です.数学では等号 (=) は両辺 が等しいと言う意味ですが,計算機言語においてはほぼ全ての場合において右辺 の値を左辺に代入する操作になります.ここでは, n という名前の変 数に100という値を代入しています.

    2行目は数式になっていますが,これも代入です.今度の変数の名前は sum となっています.このように変数は複数の文字を使って名前づけをするこ とが出来ます.ただし,数字で始まるものはダメですし,大文字で始まるもの は別の「定数」と呼ばれるものになります.さらに,途中にスペースを含むこ ともダメです.英語の小文字で始め,アルファベットと数字,ハイフン (-) と アンダースコア (_) を使うのが良いでしょう.また,変数名には使ってはいけ ない「予約語」というものがあります.これは,これらの単語にはあらかじめ 意味のある動作が割り振られているので,変数名に使ってはいけないと言うも のです.Rubyの場合は リンク先のようなものがあります.

  4. 変数の型

    コンピュータで値を扱うためには,その値がどのような「型」を持っている かに注意する必要があります.C言語などでは,最初にユーザがその型を指定し てやらないといけないのですが,Rubyにおいてはあまり意識する必要はありませ ん.Rubyの方で,「よきに計らって」くれます.しかし,一応は意識しておかな いと重要な間違いに発展することがありますので,やはり注意は必要です.

    さて,型には次のようなものがあります.

    • 文字列

    • 整数

    • 浮動小数点数

    文字列は最初に見たように,文字のつながりです.これも「値」として意味があ ります.整数はたぶんお分かりになるでしょうが,「浮動小数点数」は分かりに くい名前ですね.要は,「実数」(小数点以下の部分を含む数) です.「分数」 のような概念はありません.整数は普通に 1 とか 21 のよ うに表します.浮動小数点数は小数部分をつけて,1.0 12.3456 のようにして表現します.次のようなスクリプトを実行すると, 変数の型がRubyにおいては自在に変更可能であることがお分かりになるでしょう.

    a = 1
    puts a
    
    a = 2.0
    puts a
    
    a = "abc"
    puts a
    

    次の四則演算のところで,これらの型がどのように 影響してくるのか,見てみることにします.

    また,特殊な値として,nil falsetrue とい うものがありますが,これも後で紹介します.

  5. 定数

    変数は名前のごとく変化する数ですので,スクリプトが動作する途中で値が変わ ることもよくあります.しかし,最初に決めたらそれは変更しない,という値も 必要になることがあります.そのような場合に「定数」を用います.これは,名 前をアルファベットの大文字で始めることで定数として「定義」出来ます.定数 の値を変更しようとすると,スクリプトの実行時にメッセージが表示されます.

    CONSTANT = 1
    CONSTANT = 2
    
    puts CONSTANT
    

    を試してみると,

    tmp.rb:2: warning: already initialized constant CONSTANT
    

    が出てきます.残念ながらメッセージは英語なのですが,難しくは無いのでお分 かりになるでしょう.2行目に問題があることが最初に示され,値を変更しよう とするときに定数であることを指摘されています.

    ただし,結果の方は一応変更後の値である「2」が出力されています.

  6. 変数のいろいろ

    変数には実は「グローバル変数」や「インスタンス変数」など,いろいろな種類 があります.しかし,今日はそのような特殊な変数は扱いません.「ローカル変 数」という変数を上では紹介して利用していますが,それをここでは変数と呼ん で,それだけを扱うことにします.


 目次に戻る  前のページへ  次のページへ