From: Yousuke Takahashi Date: 2009-08-17T16:45:53+09:00 Subject: [ruby-list:46282] Re: rubyの変数の扱いについて 前川さん 高橋庸介といいます。 ずっとROMってて初登校です。 結論からすると i = 0 a = 0 while i < 5 a = a + i i += 1 end puts a が正解なのかもしれません。 > a = a + i としたときに最初にaがでてきて、aの中身がわからず(未定義状態)、+というメソッドがわからなく、メソッド未定義エラーになった。 上記は、最初に0と数値で初期化してあげて、これからaという変数は数値として使うよ、と宣言しただけです。 a=0 の一文だけ追加しましたが、これで if i == 0 a = 0 end があったときと同じ結果にはなっています。 2009/08/17 16:29 に 前川 映一 さんは書きました: > 前川です。 > > rubyは、script言語ということですが、 > いまひとつ、理解できていません。 > > i = 0 > while i < 5 > if i == 0 > a = 0 > end > a = a + i > i += 1 > end > puts a > > では、正常に終了しますが、 > > i = 0 > while i < 5 > a = a + i > i += 1 > end > puts a > > では、 > undefined method `+' for nil:NilClass (NoMethodError) > Complete(1) エラーとなります。 > > この違いは、i==0の条件で、a = 0 があるかないかですが、 > > 変数aが実体化される場合の動作が、いまいち理解できていません。 > よろしくお願いします。 > > > 了 > > >