0

これは機能します:

#Loop naming accounts====================

num = 0 #<--Generic counting variable

loop do

    print ("\nEnter account name or press 'q': > ")

    names[num] = gets.chomp

        if names[num] == "q"
            break   
        end

    puts ("The account name is #{names[num]}.")

    num += 1

end

ここで明らかな問題は、"q" をアカウントの 1 つにしたくないということです。

これは機能しません:

#Loop naming accounts====================

num = 0 #<--Generic counting variable

loop do

    print ("\nWould you like to add an account? [1 - yes] [2 - no]: > ")

    varr = nil

    varr = gets.chomp.to_i

    if varr == 2
        break
    end

    names[num] = gets.chomp

    puts ("The account name is #{names[num]}.")

    num += 1

end

これにより、端末が完全に黒い画面になります。質問:

  1. 最初の例ではループを抜けられるのに、2 番目の例ではうまくいかないのはなぜですか?

  2. 2 番目の例が、エラーなどをスローするのではなく、完全に空白の画面に奇妙に壊れるのはなぜですか?

  3. これを適切に行うにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0
  1. 2 で終了すると、2 番目の例は問題なく動作します。
  2. 問題は、ユーザーにアカウントを追加するかどうかを最初に入力するように求め、次にアカウントの名前である 2 番目の入力を期待しているが、ユーザーに何も出力しないことです。これを試してください。コード:

num = 0 #<--Generic counting variable
names = [] # Collection for names

loop do
  print ("\nWould you like to add an account? [1 - yes] [2 - no]: > ")
  varr = gets.chomp.to_i
  break if varr == 2

  puts "Enter name"
  names[num] = gets.chomp
  puts ("The account name is #{names[num]}.")

  num += 1
end
于 2013-10-17T00:48:34.227 に答える