这是为所有if语句创建else语句的好方法吗?
function myFunction()
{
var a = 4;
var b = 5;
var c = 6;
var x = 0;
if (a > 2)
{
// Result 1
}
else
{
x = x + 1;
}
if (b > 3)
{
// Result 2
}
else
{
x = x + 1;
}
if (c > 4)
{
// Result 3
}
else
{
x = x + 1;
}
if (x >= 3)
{
// All results are false
}
}
有可能做这样的事吗?围绕所有if语句的()尝试将所有if语句组合在一起失败:
function myFunction()
{
var a = 4;
var b = 5;
var c = 6;
(
if (a > 2)
{
// Result 1
}
if (b > 3)
{
// Result 2
}
if (c > 4)
{
// Result 3
}
)
else
{
// All results are false
}
}
答案 0 :(得分:4)
你的原始逻辑有点颠倒,这使你的代码变得很复杂。你的逻辑是计算这些分支没有被采取的次数,如果它们中的所有分支都不是,那么就这样做。'
你应该看到下面的代码实际上是相似的,除了我只是设置了一个标志,如果任何的if
分支,在这些分支中,所以没有else
个分支,也没有任何计数。
只有在没有采用任何先前的分支时才会发生最终操作。
function myFunction(a, b, c) {
var actionTaken = false
if (a > 2) {
// action 1
actionTaken = true;
}
if (b > 3) {
// action 2
actionTaken = true;
}
if (c > 4) {
// action 3
actionTaken = true;
}
if (!actionTaken) {
// none of the above happened
}
}
答案 1 :(得分:2)
这样做:
var a = 4;
var b = 5;
var c = 6;
var x = 0;
if (a > 2)
{
// Result 1
}
if (b > 3)
{
// Result 2
}
if (c > 4)
{
// Result 3
}
if (a <= 2 && b <= 3 && c <= 4) // your else
{
}
也许不是最好的解决方案,但它确实有效。