Javascript 所有if语句的Else语句

Javascript 所有if语句的Else语句,javascript,Javascript,这是为所有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 &g

这是为所有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
  }
}
这样做:

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
{
}
var a=4;
var b=5;
var c=6;
var x=0;
如果(a>2)
{
//结果1
}
如果(b>3)
{
//结果2
}
如果(c>4)
{
//结果3
}

如果(a您的原始逻辑有点颠倒,这使您的代码复杂了很多。您的逻辑是“计算这些分支没有被执行的次数,如果所有(3)个分支都没有执行,请执行此操作”

您应该看到,下面的代码实际上是类似的,除了我刚刚设置了一个标志,如果在这些分支中执行了
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
    }
}

你不应该一遍又一遍地使用
var x
,也没有第二种解决方案那样的语法……你想每次检查只进入else一次还是一次?我想你想要
if(){}else if(){else if(){}else{else}
如果只有一种情况是真的。但是如果所有情况都是真的,那么答案取决于你是否需要对方开火。这是使用的方法之一。
if(x){}else if(y){…}else{}
@SamR No,这不是切换的情况,它取决于是否“结果”这意味着函数返回,使得三个
if
分支相互排斥。这一点上的问题还不清楚。我认为这是“OK”,但它也违反了“不要重复你自己”原则。@Alnitak我明白了,也明白了。但是如果else和switch不起作用。事实上,它们不起作用,但要说明是否有任何早期的分支是在不需要重复的情况下使用的(或者在您的情况下是否定的)原始谓词。@JoshuaBakker我想到了这个解决方案,但是如果我有1000条if语句呢?你的最后一条if语句必须再次执行之前的所有测试。这可能是个问题吗?这就是为什么我引入了x变量,但这意味着每个if语句都有一条else语句。我不知道哪一条权衡是最好的。是的,没错,你的答案会更好