質問編集履歴

3 修正

t.s_k

t.s_k score 57

2018/09/29 20:04  投稿

Ruby 配列の各要素を変数扱いしたい ary[x_i , y_i]
配列の各要素を変数のように使いたいと思い、
timesメソッド内で定めた**インスタンス変数**@b_iを、timesメソッド外で利用しようとしました。
ここで出力したいのは**@f_(任意の数値)**なのですが、これはインスタンス変数ではないと気づきました。(下記)
そこで、**配列の各要素を変数のように利用するにはどのような方法があるのでしょうか?**
(実際に@f_0を出力しようとした結果**@f_0は定めてないためnil** が出力されました。インスタンス変数に定義したのは**@b_i**であり、@f_0には別途代入が必要)
(実際に@f_0を出力しようとした結果**@f_0は定めてないためnil** が出力されました。インスタンス変数に定義したのは**@f_i**であり、@f_0には別途代入が必要)
```
n = gets.chomp.to_i
d = []
n.times do |i|
  @b_i,@f_i = gets.chomp.split(" ").map(&:to_i)
  d[i] = [@b_i,@f_i]
  puts @f_0
end
p d
puts @f_0
p @f_0
#=>
# 2
# 10 2
#                # この行に変数 f_0 を出力したい
# 78 9
#                # この行に変数 f_0 を出力したい
# [[10, 2], [78, 9]]
#                # この行に変数 f_0 を出力したい
# 9              # @f_i (@f_iの戻り値)
# nil            # @f_0 = nil
```
timesメソッド外で利用する一例
```
# ary =[ [ [ [b_0 , f_0] , [b_1 , f_0] , [b_2 , f_2] . . .
for f_i in .. do
 ...
 for b_i in .. do
 ...
 end
end
```
  • Ruby

    16258 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

2 修正

t.s_k

t.s_k score 57

2018/09/29 20:04  投稿

Ruby 配列の各要素を変数扱いしたい ary[x_i , y_i]
配列の各要素を変数のように使いたいと思い、
ここで出力したいのは**@f_(任意の数値)**なのですが、これはインスタンス変数ではないと気づきました。(下記)
そこで、**配列の各要素を変数のように利用するにはどのような方法があるのでしょうか?**
(実際に@f_0を出力しようとした結果**@f_0は定めてないためnil** が出力されました。インスタンス変数に定義したのは**@b_i**であり、@f_0には別途代入が必要)
```
n = gets.chomp.to_i
d = []
n.times do |i|
  @b_i,@f_i = gets.chomp.split(" ").map(&:to_i)
  d[i] = [@b_i,@f_i]
  puts @f_0
end
p d
puts @f_0
p @f_0
#=>
# 2
# 10 2
#                # この行に変数 f_0 を出力したい
# 78 9
#                # この行に変数 f_0 を出力したい
# [[10, 2], [78, 9]]
#                # この行に変数 f_0 を出力したい
# 9              # @f_i (@f_iの戻り値)
# nil            # @f_0 = nil
```
timesメソッド外で利用する一例
```
# ary =[ [ [ [b_0 , f_0] , [b_1 , f_0] , [b_2 , f_2] . . .
for f_i in .. do
 ...
 for b_i in .. do
 ...
 end
end
```
  • Ruby

    16258 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

1 修正

t.s_k

t.s_k score 57

2018/09/29 20:03  投稿

Ruby 配列の各要素を変数扱いしたい ary[x_i , y_i]
配列の各要素を変数のように使いたいと思い、  
timesメソッド内で定めた**インスタンス変数**@b_iを、timesメソッド外で利用する、ということをやりたいのですが、
ここで出力したいのは**@f_(任意の数値)**なのですが、これはインスタンス変数ではないと気づきました。(下記)
そこで、**配列の各要素を変数のように利用するにはどのような方法があるのでしょうか?**
(実際に@f_0を出力しようとした結果**@f_0は定めてないためnil** が出力されました。インスタンス変数に定義したのは**@b_i**であり、@f_0には別途代入が必要)
```
n = gets.chomp.to_i
d = []
n.times do |i|
  @b_i,@f_i = gets.chomp.split(" ").map(&:to_i)
  d[i] = [@b_i,@f_i]
  puts @f_0
end
p d
puts @f_0
p @f_0
#=>
# 2
# 10 2
#                # この行に変数 f_0 を出力したい
# 78 9
#                # この行に変数 f_0 を出力したい
# [[10, 2], [78, 9]]
#                # この行に変数 f_0 を出力したい
# 9              # @f_i (@f_iの戻り値)
# nil            # @f_0 = nil
```
timesメソッド外で利用する一例
```
# ary =[ [ [ [b_0 , f_0] , [b_1 , f_0] , [b_2 , f_2] . . .
for f_i in .. do
 ...
 for b_i in .. do
 ...
 end
end
```
  • Ruby

    16258 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る