当前位置:  开发笔记 > 编程语言 > 正文

哪个更适用于嵌套的if中的两个条件或者使用带有And的单个?

如何解决《哪个更适用于嵌套的if中的两个条件或者使用带有And的单个?》经验,为你挑选了3个好方法。

嵌套if或者如果使用And运算符,这是更好的方法吗?
单身如果与和

if (txtPackage.Text != string.Empty && txtPackage.Text == "abc")
{
   //
}

嵌套如果

if (txtPackage.Text != string.Empty)
{ 
  if (txtPackage.Text == "abc")
  {
     //
  }
}

Timothy Khou.. 7

我不打算进入,但看到这里的一些答案似乎是"我喜欢我的代码看起来像这样"......我觉得我应该说些什么:)

"更好"意味着代码执行速度更快,或者更易读/可扩展.你想你的窝,如果在的情况下,你将可能有多个检查所有的都有一个共同的要求.

例:

if (myThingy != null)
{
    if (myThingy.Text = "Hello") ...

    if (myThingy.SomethingElse = 123) ...
}

编辑:还需要说,嵌套你的IF需要比单个IF更多的CPU周期(因此"慢").最重要的是,您的条件顺序可以大大提高性能.

再次出现:

if (somethingQuick() && somethingThatTakesASecondToCalculate()) ...

比(当然)更快

if (somethingThatTakesASecondToCalculate() && somethingQuick()) ...

因为如果IF的第一部分失败,第二部分甚至不会被执行,从而节省了时间.



1> Timothy Khou..:

我不打算进入,但看到这里的一些答案似乎是"我喜欢我的代码看起来像这样"......我觉得我应该说些什么:)

"更好"意味着代码执行速度更快,或者更易读/可扩展.你想你的窝,如果在的情况下,你将可能有多个检查所有的都有一个共同的要求.

例:

if (myThingy != null)
{
    if (myThingy.Text = "Hello") ...

    if (myThingy.SomethingElse = 123) ...
}

编辑:还需要说,嵌套你的IF需要比单个IF更多的CPU周期(因此"慢").最重要的是,您的条件顺序可以大大提高性能.

再次出现:

if (somethingQuick() && somethingThatTakesASecondToCalculate()) ...

比(当然)更快

if (somethingThatTakesASecondToCalculate() && somethingQuick()) ...

因为如果IF的第一部分失败,第二部分甚至不会被执行,从而节省了时间.



2> itsmatt..:

如果事实上txtPackage.Text不为空但包含"abc"之外的其他内容,您是否会在'嵌套if'示例中执行不同的操作?

如果你不是,我会问你为什么要检查string.empty?

你可以写:

if (txtPackage.Text == "abc")
{

//

}

并完成它.

完全取决于你最终想做什么.



3> 小智..:

没有人提到维护该代码.哪个更容易调试?

如果失败了:

if (thisIsTrue && thisIsTrueToo)
    doStuff();

你知道这两个陈述中的一个失败了,但不是哪一个.

如果失败了:

if (thisIsTrue) {
  if (thisIsTrueToo)
    doStuff();
}

您的异常会告诉您行号.我说要方便维护,因为你可能不会永远使用这个代码.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有