在Ruby

时间:2015-11-30 01:42:13

标签: if-statement statements

对编程世界非常陌生,刚刚开始学习,通过Flatiron School的预备工作,并且由于某种原因无法理解“if”和“else”语句。这个问题与Chris Pine'聋奶奶'的问题类似,但没有说“BYE!”三次。

〜该方法应该包含一个包含一个短语的字符串参数,并检查该短语是否全部用大写写成:如果不是,那么祖母听不到你的声音。她应该回复(返回)HUH?!说起来,SONNY!。

〜但是,如果你对她大喊大叫(即用一个包含全部大写的短语的字符串参数调用方法,那么她可以听到你(或者至少她认为她可以)并且应该回复(返回)不,不是从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语句时我应该如何添加参数?这可能是一个非常简单和基本的问题,但似乎无法理解这一点(可能过度思考) 任何帮助和清晰度将不胜感激。

1 个答案:

答案 0 :(得分:0)

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语句时我应该如何添加参数?   这可能是一个非常简单和基本的问题,但似乎无法得到   我的头脑(可能是过度思考)。

你的错误是该函数不接受任何参数,在这里它接受"短语"变量作为参数并处理它:

 def speak_to_grandma(phrase) 

你有

 if false

但没有检查究竟是什么错误。用" false"重写我的版本。 :

input_phrase = "Hi Nana, how are you?"
def speak_to_grandma(phrase)  
  # Check if it is false that string is all upper case
  if (phrase == phrase.upcase) == false

    # return this string if condition is false                
     puts "HUH?! SPEAK UP, SONNY!"        
      else 
    # return this string if condition is true 
      puts "NO, NOT SINCE 1938!"
  end
end

speak_to_grandma(input_phrase)

我正在评估

if  (phrase == phrase.upcase) == false

基本上意味着"如果表达式短语等于短语全部大写是假的"