2013-10-26 128 views
-1
wordList = ['1930', '1931', '1932', '1933', '1934', '1935', '1936', '1937', '1938',  '1939', '1940'] 
wordLen = wordList.length 
wordRand = rand(wordLen) 
year = wordList[wordRand] 

非常喜歡這裏......福利局的year的行爲是這樣的,我每次運行程序時,它選擇從wordList一個隨機字符串。問題是,它需要特定的隨機選擇的號碼,並將其設置爲等於year。因此,對於程序的每個實例,每次調用它時,year與列表中的字符串都是相同的。我怎樣才能讓它每次選擇一個不同的數字?紅寶石 - 隨機數是相同的隨機數,每次

puts 'Why hello there, dear! Grandma is, SO, happy to see you!' 
response = gets.chomp 
    while response != 'BYE' 
    if response == response.upcase 
     puts 'NO, NOT SINCE ' + year + '!' 
     response = gets.chomp 
    else 
     puts 'WHAT? SPEAK UP, SONNY!' 
     response = gets.chomp 
    end 
    end 
    if response == 'BYE' 
    puts 'OKAY, BYE DEAR!!' 
    end 

編輯:添加背景

+1

不,它不是..對我來說 –

+0

嗯...好吧讓我給你看看上下文: –

+0

上面的代碼工作正常。下面的代碼引用變量'year',所以如果你重新運行下面的代碼,年份不會改變。這是你的問題嗎?如果是這樣,你需要將上面的代碼轉換成方法'year()'(即'def year()... end')。注意,一個Ruby約定是變量(和方法)名稱中的所有字母都是小寫字母,並且爲了便於閱讀而插入了下劃線。駱駝案例('LikeThis')被保留用於類和模塊名稱。 –

回答

1

你似乎只在循環使用它來生成一個值year,然後重複。如果您需要不同的號碼,請將呼叫置於環路內的rand

+0

就是這樣,謝謝! –