将if/else放在另一个其他地方是不好的做法?

the*_*ava 4 javascript programming-languages

if() {

}else {
    if (IsAlternateRow=='true')
        IsAlternateRow = 'false';
    else
        IsAlternateRow = 'true';
}
Run Code Online (Sandbox Code Playgroud)

我可以将if和else语句放在另一个else语句中吗?

NPE*_*NPE 9

注意:在发布此答案之后,问题被重新标记为JavaScript(它最初是关于Java的,所以这个答案是关于Java的).

一般来说,放置一个ifelse一个else子句是很好的.

但是,您的代码存在一些问题.IsAlternateRow=='true'在语法上没有效力.

  • 如果是字符串比较,则应使用双引号.equals();
  • 如果它是一个布尔比较,那么你最好简单地做一下IsAlternateRow = !IsAlternateRow而不是整个嵌套if.

  • @Chris Nope.'true'和'false'不是有效的字符常量. (3认同)

Ben*_*age 6

是的,将if内部放置在内部else是完全可以接受的做法,但是在大多数情况下,使用else if更加清晰,整洁。例如

if (test) {
   // Do something
} else if (otherTest) {
   // Do something else
} else {
   // Do a third thing
}
Run Code Online (Sandbox Code Playgroud)

实际上这是简写

if (test) {
   // Do something
} else {
     if (otherTest) {
         // Do something else
     } else {
         // Do a third thing
     }
}
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,两者应编译为几乎相同的程序。

您的代码示例不是很清楚,无法正确编译,更清晰的示例代码可能会帮助我们帮助您。


Tim*_*ote 5

尝试

IsAlternateRow = !IsAlternateRow;
Run Code Online (Sandbox Code Playgroud)

(更新以显示代码中的内容)

var IsAlternateRow = false;

if(/* -- insert equation here -- */) 
{
 // do something
} 
 else 
{
    IsAlternateRow = !IsAlternateRow;
}
Run Code Online (Sandbox Code Playgroud)