2016-05-24 9 views
0

後でコンソールに出力され、合計される配列の境界を設定しようとしています。下限($ a)は50未満でなければなりません。これを評価するためにこのコードを書いていますが、より高い数値が入力された場合は数値の再入力が必要です。これまでのところ、Googleと実験は私を失敗させました。プロンプトとはgetsに呼び出すように単純なループでロジックを再試行します

def num_a 
    print "Pick a number from 1 to 50: " 
    $a = Integer(gets.chomp) 
    until $a < 50 
     puts "Um, try again please." 
    # need something here to prompt for another response 
    # until $a is less than 50 
    end 
end 

答えて

0

あなたはループを再構築でき、その中の両方である:

def num_a 
    # start with a number that doesn't meet the condition 
    a = 50 

    # check if the number meets the condition yet 
    until a < 50 
    # ask the user to enter a number 
    print "Pick a number from 1 to 50: " 
    a = Integer(gets.chomp) 
    # ask to try again if the number isn't under 50 
    puts "Um, try again please." unless a < 50 
    end 

    # return the entered value to the caller 
    a 
end 

また、私が例に示さてきたように、私はの使用を避けることをお勧めしますグローバル変数(この場合は$a)。

+0

ああ、ありがとう。ローカル変数からグローバル変数に切り替えたのは、メソッド "num_a"でループを囲んだとき、全体のコードが機能しなくなったからです(私は後で$を呼び出します)。多分私はする必要はない? – jedgil

+0

@ jedgilそう、あなたはする必要はありません。 'num_a'の結果をあなたが必要とする変数に代入するだけです。 'value = num_a'を呼び出し、必要に応じて' value'を使います。 – neuronaut

+0

doh!完璧な意味合いがあります。私はメスにハンマーを使っていました。ありがとう@neuronaut – jedgil

関連する問題