以下のRubyのコードが,意図した動作をしないのはなぜですか。(制限時間1分) やりたい事: 1から3までの各数値の2乗を計算する。 プログラム終了時点での,変数の状態を表示する。 # 「p」で日本語を出力するための設定 $KCODE = "sjis" # 1から3までの範囲で実行 1.upto(3) do |i| # 2乗した値をnに代入 n = i * i # その値を出力 p "#{ i }の2乗は,#{ n }です。" end p "プログラム終了時点でのnの値は,#{ n }です。" 発生する問題 >ruby hoge.rb "1の2乗は,1です。" "2の2乗は,4です。" "3の2乗は,9です。" hoge.rb:12: undefined local variable or method `n' for main:Object (NameError) 最後の部分で,n の値
![Rubyの動かないコード (初級編) ブロックとクロージャの性質 - 主に言語とシステム開発に関して](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)