簡體   English   中英

在這個Ruby代碼中我在做什么錯?

[英]What am I doing wrong in this Ruby code?

def pregunta 
    reply = gets.chomp.downcase
    if reply == 'si'
        puts 'Correcto'
    end

    if reply == 'no'
        puts 'Incorrecto'
    end
end

pregunta 'alfkjdasñlfj?'

我問了一個問題(“ pregunta”是英語問題)后,當我輸入答案(“ si”或“ no”)時,程序應告訴我是對的(“ correcto”)還是錯的(“ incorrecto”) )。 我沒有得到答案,而是得到了“ ArgumentError”。 我究竟做錯了什么?

我正在使用Ruby 1.9.3-p194

pregunta不帶參數,但是無論如何您都要傳遞一個。 我可能是錯的,但您不是要這樣做:

def pregunta(preg)
    puts preg
    reply = gets.chomp.downcase
    if reply == 'si'
        puts 'Correcto'
    end

    if reply == 'no'
        puts 'Incorrecto'
    end
end

您沒有在函數調用中傳遞值,而是從終端讀取它。 調用該函數, 然后輸入您的字符串。

pregunta
si
Correcto
=> nil

您的方法聲明中沒有任何參數。

您將需要以下內容:

def pregunta(foo)
   if foo == 'bar'
      true
   end
end

您在稱pregunta為“alfkjdasñlfj?” 但是該方法沒有參數。

def pregunta(answer) 
    reply = answer.chomp.downcase
    if reply == 'si'
        puts 'Correcto'
    end

    if reply == 'no'
        puts 'Incorrecto'
    end
end

pregunta gets

也許 ?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM