If statement 在Ruby中使用If和Else语句

If statement 在Ruby中使用If和Else语句,if-statement,statements,If Statement,Statements,对编程世界来说非常陌生,刚刚开始学习,通过Flatiron学校的准备工作,一直做得不错,但由于某种原因无法理解“if”和“else”语句。这个问题类似于克里斯·派恩的“聋奶奶”问题,但没有说“再见!”三次 ~该方法应该接受一个包含短语的字符串参数,并检查短语是否全部用大写字母书写:如果不是,则奶奶听不见。然后她应该回应(返回)哈?!说出来,桑尼 ~但是,如果你对她大喊大叫(即使用包含全大写短语的字符串参数调用该方法),那么她可以听到你的声音(或者至少她认为她可以),并且应该回答(返回)NO,而不

对编程世界来说非常陌生,刚刚开始学习,通过Flatiron学校的准备工作,一直做得不错,但由于某种原因无法理解“if”和“else”语句。这个问题类似于克里斯·派恩的“聋奶奶”问题,但没有说“再见!”三次

~该方法应该接受一个包含短语的字符串参数,并检查短语是否全部用大写字母书写:如果不是,则奶奶听不见。然后她应该回应(返回)哈?!说出来,桑尼

~但是,如果你对她大喊大叫(即使用包含全大写短语的字符串参数调用该方法),那么她可以听到你的声音(或者至少她认为她可以),并且应该回答(返回)NO,而不是1938年以后

到目前为止,我已经:

def speak_to_grandma
  puts "Hi Nana, how are you?".upcase 
  if false  
puts "HUH?! SPEAK UP, SONNY!"
  else 
    puts "NO, NOT SINCE 1938!"
  end
end
但是我得到了错误的参数数量…在使用if/else语句时,我应该如何添加参数?这可能是一个非常简单和基本的问题,但我似乎无法理解这一点(可能是过度思考)。
任何帮助和澄清都将不胜感激

input_phrase = "Hi Nana, how are you?"
def speak_to_grandma(phrase)  
  # Check if string equals same phrase all upper case letters, which means string is all uppercase
  if phrase == phrase.upcase 
    # return this string if condition is true 
    puts "NO, NOT SINCE 1938!"
  else 
    # return this string if condition is false 
    puts "HUH?! SPEAK UP, SONNY!"
  end
end

# execute function passing input_phrase variable as argument
speak_to_grandma(input_phrase)
在使用if/else语句时,我应该如何添加参数? 这可能是一个非常简单和基本的问题,但似乎无法解决 我的头围绕着这个(可能是过度思考)

您的错误是函数不接受任何参数,这里它接受“phrase”变量作为参数并处理它:

 def speak_to_grandma(phrase) 
你有

 if false
但是没有检查什么是假的..要用“false”重写我的版本:

我在这里评估

if  (phrase == phrase.upcase) == false
基本意思是“如果表达式中短语等于短语,则所有大写字母都为false”

不要执行
(短语==短语.upcase)==false
。执行
短语!=短语.upcase
。或者,更好的是,执行
短语==短语.upcase
并交换
if
else
块。
if  (phrase == phrase.upcase) == false