【问题标题】:javascript: If-statement - Expected an assignment or function call and instead saw an expressionjavascript: If-statement - 需要一个赋值或函数调用,而是看到一个表达式
【发布时间】:2015-03-19 11:23:17
【问题描述】:

当我运行它时,我收到以下错误:

期待一个赋值或函数调用,但看到的是一个表达式。

var dealer1 = 8;
var dealer2 = 4;
var dealer3 = 6;
var total2 = dealer1+dealer2+dealer3;

if (total2 < 17) {
    ANSWER = 'safe';
}
else if (total2 = 21) {
    ANSWER = 'black jack';
}
else (total2 >= 17 && total2 < 21); {
    ANSWER = 'stop';
}

它来自这个:else (total2 &gt;= 17 &amp;&amp; total2 &lt; 21),我不知道这有什么问题! 这不正确吗?

【问题讨论】:

  • Else 没有条件。它只是涵盖了您的ifelse if 不具备的所有其他可能性。

标签: javascript


【解决方案1】:

问题是你最后的else语句,应该没有条件表达式:

else (total2 >= 17 && total2 < 21); {
    ANSWER = 'stop';
}

应该写成:

else if(total2 >= 17 && total2 < 21){
    ANSWER = 'stop';
}

或:

else{
    ANSWER = 'stop';
}

取决于你想要什么。

【讨论】:

    【解决方案2】:

    您只是在else 之后省略了if

    (expression) 后面还有一个多余的分号

    哦,当total2 &gt; 21 时,没有“半身”牌的分支。

    【讨论】:

      【解决方案3】:

      我可以在这里看到一些问题...

      第一个“else if”代码块没有检查任何内容,它将变量 total2 设置为 21,因此如果代码到达这一点,ANSWER 将始终为“black jack” - 检查您需要使用的值== 或 ===(严格比较)

      而不是...

      else if (total2 = 21) {
          ANSWER = 'black jack';
      }
      

      使用...

      else if (total2 == 21) {
          ANSWER = 'black jack';
      }
      

      另一个问题在这里:

      else (total2 >= 17 && total2 < 21); {
          ANSWER = 'stop';
      }
      

      正如其他人所说 - else 不使用分号,因此请删除它。更重要的是,单个 else 没有任何参数 - 这是所有 if 和 else if 都失败的最后一种情况。所以你有两个选择......

      删除参数,然后像这样有一个 else { ... }:

      else {
          ANSWER = 'stop';
      }
      

      或者,如果您确实需要检查另一个条件,请将其更改为另一个 else if( ... ) { ... } 像这样(记得删除那个分号):

      else if (total2 >= 17 && total2 < 21) {
          ANSWER = 'stop';
      }
      

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2023-03-26
        • 2017-09-09
        • 2011-05-09
        • 2019-04-22
        • 2020-02-12
        • 2019-10-15
        • 2020-11-08
        • 1970-01-01
        相关资源
        最近更新 更多