if() {
}else {
if (IsAlternateRow=='true')
IsAlternateRow = 'false';
else
IsAlternateRow = 'true';
}
我可以在另一个else语句中放置if和else语句吗?
if() {
}else {
if (IsAlternateRow=='true')
IsAlternateRow = 'false';
else
IsAlternateRow = 'true';
}
我可以在另一个else语句中放置if和else语句吗?
是的,在else
语句中放置一个if
是完全可接受的做法,但在大多数情况下,使用else if
更清晰、更简洁。例如:
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
}
}
在大多数情况下,这两个应该编译成几乎相同的程序。
您的代码示例不是很清晰,也无法正确编译,更清晰的示例代码可能会帮助我们为您提供帮助。
注意:在此答案发布后,该问题已被重新标记为JavaScript(最初它是关于Java的,因此此答案是关于Java的)。
一般来说,在else
语句中放置if
和else
是可以的。
但是,您的代码存在几个问题。IsAlternateRow=='true'
在语法上无效。
.equals()
;IsAlternateRow = !IsAlternateRow
而不是整个嵌套的if
。java
更改为 javascript
,所以它不再适用。我们被晚期编辑搞糊涂了 :( - Rob Hruska"foo"
是一个有效的字符串常量。'foo'
是无效的语法。 - Isaac Truett尝试
IsAlternateRow = !IsAlternateRow;
var IsAlternateRow = false;
if(/* -- insert equation here -- */)
{
// do something
}
else
{
IsAlternateRow = !IsAlternateRow;
}
IsAlternateRow
(解释为false)= !IsAlternateRow
(解释为!false,或true)
这适用于从false到true和从true到false的情况。 - Timothy GrooteIsAlternateRow
将使用布尔值的相反值来执行===
,以此来改变IsAlternateRow
当前的值。 - Shazif(IsAlternateRow) { //进行操作
- Timothy Groote返回 (IsAlternateRow.equals('true')) ? 'false' : 'true'
(如果“IsAlternateRow”等于“true”,则返回“false”,否则返回“true”)一般来说,要回答这样的问题,你应该问自己:
这是否易于阅读?
浅层嵌套的if/else
语句并不可怕,但是一旦你开始过度嵌套,就应该进行重构。
IsAlternateRow = !IsAlternateRow
正确的做法:
if() {
} else if (IsAlternateRow=='true') {
IsAlternateRow = 'false';
}
else
{
IsAlternateRow = 'true';
}
是的,你可以这样做。如果你想要对同一个对象/变量进行多次评估,你可以使用 switch 语句,但在许多情况下,交错的 if 语句同样能够胜任。
if (IsAlternateRow == 'true')
一定会是 false,因为==
评估对象引用相等性。如果您想要字符串比较,请使用.equals()
。 - wkljava
。现在它是一个被标记为javascript
的“我可以嵌套if/else语句吗”的问题... - Rob Hruska