読者です 読者をやめる 読者になる 読者になる

落書きノート

ふと自分が気になった事を書いてます

Rubyでやり直し

while文を使って添字をいじりながらプログラムを作っていましたが、このブログに書いてあるRubyソースコードを見ていると、timesメソッドで同様のことが出来ていたのでやり直しました。結果、出来ました。自分で解いたプログラムがありながらわかりませんでした。多分無意識に使っていたのでしょう。for文とかでは無理だったと思います。Rangeオブジェクトを使っているのが原因かな?

# coding: utf-8
print "要素数 : "
n = gets.chomp.to_i
array = Array.new(n)

array.length.times {|i|
  array[i] = rand(10) + 1
}

array.length.times {|i|
  array.length.times {|j|
    if array[i] == array[j] && i != j then
      array[i] = rand(10) + 1
      j = 0
      next
    end
  }
}

array.length.times{|i|
  puts "a[#{i}] = #{array[i]}"
}