切换语句大于

时间:2014-03-31 14:38:29

标签: switch-statement

如何使switch语句条件如下所示:

if(age>18)

我希望它看起来像这样,但后来在switch-statement版本中。

这可能吗?

6 个答案:

答案 0 :(得分:1)

取决于您使用的语言。

C# => 不可能switch case

  

每个案例标签指定常量值

Java => 不可能switch case

  

if-then-else语句可以根据范围测试表达式   值或条件,而switch语句测试表达式   仅基于单个整数的

如果您使用Java或C#,则必须使用if-elseif-elseif-else方法。


Javascript => 可能switch case

  

case expressionN 用于匹配表达式的case子句。

switch (true) {
  case age > 18:
    document.write("You are older than 18");
    break;
}

答案 1 :(得分:0)

你还没有指定一种语言,但下面的结构可能是在交换机中使用表达式的语言,即:

switch (age>18)
{
   case true:
     // Do over 18 stuff here
     break;
   case false:
     // Do under 18 stuff here
     break;
}

虽然这有效,但这不是一种直观的分支技术,因此代码的可读性可能会受到影响 - 对分支使用if / then else,或者条件评估的条件运算符会更常见。

答案 2 :(得分:0)

当你完全匹配短语时,大多数情况下会使用switch语句。

switch (age>18)
{
case true:
 //Do something
  break;
 case false:
  //Do something
   break;
  }

在您的情况下使用if condition.It还会为您提供更好的方法来检查您的数据。如果您的年龄小于18岁或任何其他情况。

 if(age>18)
 {/* Do something if your condition is true  */ }
 else 
 { /* When your condition is false */ }

答案 3 :(得分:0)

是的,有可能采用某种“反向条件”技巧 - 当然,如果所使用的语言支持这种技巧。这就是它在JavaScript中的样子:

function checkAge(age) {
  switch (true) {
    case age < 18:
      console.log('Really young');
      break;
    case age < 25:
      console.log('Young and proud');
      break;
    case age < 32:
      console.log('Mature and proud');
      break;
    default:
      console.log('Well, I got some news for you...');
  }
}

checkAge(17); // Really young
checkAge(24); // Young and proud
checkAge(31); // Mature and proud

技巧是根据指定为case值的表达式检查每个后续switch值。不过,由于您需要使用break分隔每个部分,我真的怀疑它比if-else语句更具可读性。

答案 4 :(得分:0)

技术上你可以这样说(C#代码示例):

switch (age) {
  case 0:
  case 1:
  case 2:
  ...
  case 18:
    break;
  default: // <- if(age>18)
    ...  
    break;
}

但你真的想要吗?在C#,Java等中,我们通常使用 if else

  if (age <= 5) { // from 0 up to 5
    ...
  }
  else if (age <= 10) { // from 5 up to 10
    ...
  }
  else if (age <= 18) { // from 10 up to 18
    ...
  }
  else { // over 18
    ...
  }

如果一个SQL方言(通常你没有 如果构建),你可以这样说:

  case 
    when (age > 18) then
      ...
    else...
  end
例如

  select case 
           when (age > 18) then
             'Over 18'
           else
             '18 or under 18'
         end
    from MyTable

答案 5 :(得分:0)

在php中你可以做到:

switch($age) {

  case ($age < 17): 
    print "do something";
  break;
  case ($age > 18): print "over 18"; break;
}