虽然循环不循环 - Ruby
While loop not looping - Ruby
当 str[0] 为 "a" 且 str[4] 为 "b" 时,我得到 true。但是,当 "a" 处于另一个位置并且与 "b" 由三个空格分隔时,我得到 false.
任何帮助都会很棒!
def ABCheck(str)
str.downcase.split()
x = 0
while x < str.length - 4
return true if ((str[x] == "a") && (str[x + 4] =="b"))
x += 1
return false
end
end
puts ABCheck("azzzb")
#Currently puts "true"
puts ABCheck("bzzabzcb")
#Currently puts "false" - even though it should print true
那是因为 return false
在您预期之前被调用了。它应该放在循环之外:
def ABCheck(str)
str.downcase.split()
x = 0
while x < str.length - 4
return true if ((str[x] == "a") && (str[x + 4] =="b"))
x += 1
end
return false
end
您在 while 循环完成之前调用了 false。你需要在while循环之后调用它。
当 str[0] 为 "a" 且 str[4] 为 "b" 时,我得到 true。但是,当 "a" 处于另一个位置并且与 "b" 由三个空格分隔时,我得到 false.
任何帮助都会很棒!
def ABCheck(str)
str.downcase.split()
x = 0
while x < str.length - 4
return true if ((str[x] == "a") && (str[x + 4] =="b"))
x += 1
return false
end
end
puts ABCheck("azzzb")
#Currently puts "true"
puts ABCheck("bzzabzcb")
#Currently puts "false" - even though it should print true
那是因为 return false
在您预期之前被调用了。它应该放在循环之外:
def ABCheck(str)
str.downcase.split()
x = 0
while x < str.length - 4
return true if ((str[x] == "a") && (str[x + 4] =="b"))
x += 1
end
return false
end
您在 while 循环完成之前调用了 false。你需要在while循环之后调用它。