【发布时间】:2016-07-03 10:59:06
【问题描述】:
我有一个问题: 我有几个案例,我想用开关/案例来实现。
我的代码看起来有点像这样:
switch( X)
{
case 1:
flag = true ;
if ( flag ==true)
{...}
if ( flag ==false)
{...}
break ;
case 2 :
flag = true ;
if ( flag ==true)
{...}
if ( flag ==false)
{...}
break ;
case 3 :
flag = true ;
if ( flag ==true)
{...}
if ( flag ==false)
{...}
break ;
}
我可以像这样在开关中设置几个条件吗?
switch( X & flag)
{
case ( 1 && flag ==true):
{...}
break;
case ( 1 && flag ==false):
{...}
break;
case ( 2 && flag ==true):
{...}
break;
case ( 2 && flag ==false):
{...}
break;
case ( 3 && flag ==true):
{...}
break;
case (3 && flag ==false):
{...}
break;
}
【问题讨论】:
-
不,你不能这样做,这不是语言的工作方式或设计方式。根据
switch的大小,您可以使用if语句来检查标志,并根据结果使用两个switch语句,至少应该使案例更简单。 -
flag在您的第一个代码中始终为true,因此没有理由使用if语句。 -
X的范围是多少?
-
不,但考虑到
flag变量在所有情况下都必须具有相同的值,我会将整个switch语句放在首先检查标志变量的if块中。更好的是,将 switch 语句也放在另一个函数中,这样代码会更清晰。 -
最好使用布尔表达式,如
if (flag)、if (!flag),而不是if (flag == true)、if (flag == false)。
标签: c++ switch-statement conditional-statements