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

时间:2011-04-11 15:14:45

标签: javascript programming-languages

if() {

}else {
    if (IsAlternateRow=='true')
        IsAlternateRow = 'false';
    else
        IsAlternateRow = 'true';
}

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

9 个答案:

答案 0 :(得分:8)

注意:在发布此答案后,问题被重新标记为JavaScript(原来是关于Java的,所以这个答案是关于Java的。)

通常,可以在if子句中放置elseelse

但是,您的代码存在一些问题。 IsAlternateRow=='true'在语法上无效。

  • 如果是字符串比较,则应使用双引号和.equals();
  • 如果是布尔比较,那么最好只使用IsAlternateRow = !IsAlternateRow代替整个嵌套if

答案 1 :(得分:5)

IsAlternateRow = !IsAlternateRow;

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

var IsAlternateRow = false;

if(/* -- insert equation here -- */) 
{
 // do something
} 
 else 
{
    IsAlternateRow = !IsAlternateRow;
}

答案 2 :(得分:4)

return(IsAlternateRow.equals('true'))? 'false':'true'

答案 3 :(得分:4)

是的,将if置于else内是完全可以接受的做法,但在大多数情况下,else if的使用更清晰,更清晰。 E.g。

if (test) {
   // Do something
} else if (otherTest) {
   // Do something else
} else {
   // Do a third thing
}

事实上,这是

的简写
if (test) {
   // Do something
} else {
     if (otherTest) {
         // Do something else
     } else {
         // Do a third thing
     }
}

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

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

答案 4 :(得分:3)

一般来说,我会说要回答这样的问题,你应该问问自己,

  

这很容易阅读吗?

浅层嵌套if/else语句并不可怕,但是一旦你开始嵌套广告,你就应该重构。

答案 5 :(得分:2)

这很好,但有更简单的方法可以做你正在做的事情:

IsAlternateRow = !IsAlternateRow

答案 6 :(得分:1)

是的,你可以。如果你想多次评估同一个对象/变量,你可以使用一个switch语句,但在很多情况下交错if if语句也能完成这项工作。

答案 7 :(得分:1)

要回答你的问题,是的,你可以无限地嵌套if / else语句。您提供的代码将编译没有问题。虽然假设你在谈论Java,但我想,除非是伪代码,否则它无法提供所需的结果。

答案 8 :(得分:1)

正确的方法:

if() {

} else if (IsAlternateRow=='true') {
    IsAlternateRow = 'false';
}
 else
{
    IsAlternateRow = 'true';
}