[英]Switch case or if else
我有一个漫长的if..else循环。 有人可以帮助我知道“ switch case”是否比“ if..else”更好?
if (meals == null)
{
bfast.Hide();
lunch_rb.Hide();
dinner_rb.Hide();
}
else if (meals != null)
{
if (breakfast != null && lunch == null && dinner == null)
{
lunch_rb.Hide();
dinner_rb.Hide();
}
if (breakfast == null && lunch != null && dinner == null)
{
bfast.Hide();
dinner_rb.Hide();
}
if (breakfast == null && lunch == null && dinner != null)
{
bfast.Hide();
lunch_rb.Hide();
}
if (breakfast != null && lunch != null && dinner == null)
{
dinner_rb.Hide();
}
if (breakfast != null && lunch == null && dinner != null)
{
lunch_rb.Hide();
}
if (lunch != null && breakfast == null && dinner != null)
{
bfast.Hide();
}
我正在开发Windows CE 5.0的应用程序(如果有帮助)
我认为在这种情况下更好的解决方案是:
if (breakfast == null)
bfast.Hide();
if (lunch == null)
lunch_rb.Hide();
if (dinner == null)
dinner_rb.Hide();
您可以尝试这样的操作,因为您对多个变量有条件,您将需要创建表达式以将其传递给开关,因此使用if如下所示可能会使其变得简单。
if (breakfast == null)
bfast.Hide();
if (lunch == null)
lunch_rb.Hide();
if (dinner == null)
dinner_rb.Hide();
对于这种特殊情况,if-else更好,因为您具有复杂的条件,而我相信切换情况是无法做到的。
对于这个问题,我认为if...else
是否足够好。 switch...case
无法处理如此复杂的情况。 随意使用它。
Switch case总是比if ... else if更好,因为它需要更少的输入,并且您的代码将更易于阅读和理解。当我忘记考试中的switch样式时,我自己只是使用“ else if”!
if
和switch
语句之间的性能水平没有太大差异。 无论如何,您的代码都是一团糟。 考虑到Pigueiras的答案。 就像是
bfast.Hide();
lunch_rb.Hide();
dinner_rb.Hide();
if (meals != null) {
if (breakfast != null)
bfast.Show();
if (lunch =! null)
lunch_rb.Show();
if (dinner =! null)
dinner_rb.Show();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.