【问题标题】:Javascript for loop with if statement not reaching the else if statement [closed]带有if语句的Javascript for循环未到达else if语句[关闭]
【发布时间】:2016-03-31 15:42:23
【问题描述】:

为什么这不会到达 else if 并返回 (i + 0) / 2?另外,为什么警报不会给我 i + 0 2 位数的值? (即:10、20、30、40 等。任何帮助将不胜感激。

var key= "OSN0MSA9991UNAAM8ELDPBD9F57BD6PU6BVBN54CDLEGDSUSNS";
var x = 0;
if (key[20] != "P" || key[18] != "P") {
 x = 0;
 for (i=0;i<10;i++) {
  if (key[26] == i) {
   x = i + 0;
   alert(x);
  }
 };
} else if (key[20] == "P") {
 for (i=9;i>-1;i--) {
  if (key[26] == i) {
    x = (i + 0) / 2;
   alert(x);
  }
 };     
};

【问题讨论】:

  • 为什么不试试调试呢?
  • 总是首选你先调试,然后如果有任何疑问来这里提问
  • 我去过。代码运行正常,我只是使用了错误的运算符。

标签: javascript if-statement for-loop


【解决方案1】:

您在key[18] 处的值是“L”,因此if 条件始终为真,您将收到带有值7 的警报

【讨论】:

  • 知道了。愚蠢的错误。谢谢!
【解决方案2】:

我相信它没有达到“else if”,因为你的数组从 0 开始,而 key[20] 实际上是一个 P,所以它总是会落入第一个条件而不是 else if。编辑:我的错误,误读。您可以提醒 key[20] 和 key[18] 看看它认为这些值是什么。

【讨论】:

  • 问题不是key[20]而是key[18]
  • key[18] != "P" 为真,因此导致第一个 if 通过
  • 是的,好点,完全误读了。
  • 是的,但第一个条件是如果 key[20] 不等于“P”,并且由于它等于“P”,那么它不应该执行第一个条件吗?
  • 哦,废话好吧,那么 && 应该修复它吧?
【解决方案3】:

您的问题与key[18] 有关。由于您有 OR 和 key[18] = L(因此不是 P)..

【讨论】: