所有if语句的其他声明

时间:2017-03-15 13:53:46

标签: 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 > 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
  }
}

2 个答案:

答案 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
{
}

也许不是最好的解决方案,但它确实有效。