Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript For循环条件和最终表达式_Javascript - Fatal编程技术网

Javascript For循环条件和最终表达式

Javascript For循环条件和最终表达式,javascript,Javascript,我从codefights中得到了这段代码,但我没有用谷歌搜索这段代码的实际功能。此函数的作用是获取传递给参数(a,b)的两个数字之间的素数之和 这是工作代码 function Prime_sum(a, b){ for(s=0; b>=a; s += b--*!c) for(c=b-1; b%c--; ); return s } 这让我想到一些问题,比如 使用“s=0”而不是“var s=0”有什么不同 这是什么意思!c你怎么办?由于未声明c,这不应该引发错

我从codefights中得到了这段代码,但我没有用谷歌搜索这段代码的实际功能。此函数的作用是获取传递给参数(a,b)的两个数字之间的素数之和

这是工作代码

function Prime_sum(a, b){
    for(s=0; b>=a; s += b--*!c)
        for(c=b-1; b%c--; );
    return s
}
这让我想到一些问题,比如

  • 使用“s=0”而不是“var s=0”有什么不同
  • 这是什么意思!c你怎么办?由于未声明c,这不应该引发错误吗
  • 如果删除第二个循环中的最后一个分号,则该分号将不再起作用。为什么呢
  • 如果您在第一个循环中看到“b>=a”,那么使“b 编辑: 忽略我的问题,并向我解释此代码的实际功能。

    如果标题没有正确设置为我的问题,我很抱歉。

    我将拍摄:

  • s=0使
    s
    成为一个全局变量
  • 把它看作(b-)*!c//c:true=1,false=0
  • 缺少的分号将耗尽它下面的语句,并使其成为第二个循环的一部分
  • 希望有帮助。

    第四个是 如果您在第一个循环中看到“b>=a”,那么使“b


    所以每次b减少1,这使得这个条件满足

    对于#1,@JonathanLonowski,我只是碰巧读到了与你不同的帖子,但答案是一样的。。无论如何,谢谢:)#3当你使用for循环时,它必须循环一些东西——比如代码块,“;”最后意味着它只是循环一个空块。(在你的例子中,拿走它告诉它循环“返回s”,这不起作用)谢谢,我刚刚添加了第4个,如果你不介意的话:)b--将b减1,所以这最终会使b,第一次输出为0!cAlright,第一个循环为0。。我注意到在第二个循环中有一个“c-”,它应该转换为“undefined-”?我从循环中的“s”中得到的并不总是“0”。。不管怎样,我还是很困惑,在谷歌上搜索这是什么样的魔法。。。你会推荐我用谷歌搜索这个词吗?现在在第二行是(c=b-1;b%c--);当第一个c用b-1初始化时,将发生b%c。假设我们的b是9,那么c将初始化为8,然后它将检查条件(b%c-)并执行此语句,所以它将给出(9%8-)首先9%8将执行,并给出ans为1,然后c-,即8将变成7。
    s += b--*!c