如何使switch语句条件如下所示:
if(age>18)
我希望它看起来像这样,但后来在switch-statement版本中。
这可能吗?
答案 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)
switch($age) {
case ($age < 17):
print "do something";
break;
case ($age > 18): print "over 18"; break;
}