简单的 ruby 语法 if 语句。这可能吗?

Simple ruby syntax if statement. Is this possible?

我真的是编程新手,想知道这是否可行:

def lock(a,b,c,d)
if (a == 3 || a == 5 || a == 7 && b == 2 && c == 5 || c == 6 && d == 8 || d == 9 || d == 0)
  "unlocked"
else
  "locked"
end

如果不可能,为什么?

所以当我传入:lock(3,1,1,1) 它应该被锁定。

我应该换一种方式吗?有没有更好的办法?

您应该按照您的逻辑正确添加括号。像这样,

((a == 3 || a == 5 || a == 7) && (b == 2) && (c == 5 || c == 6) && (d == 8 || d == 9 || d == 0))

我会使用 include? 使其更具可读性:

if ([3,5,7].include?a and b == 2 and [5,6].include?c and [8,9,0].include?d)