【问题标题】:for loop parameter not working properly in JavaScriptfor 循环参数在 JavaScript 中无法正常工作
【发布时间】:2020-03-06 11:04:24
【问题描述】:

你好:我是新编程。 我的问题是 for 句子中的评估无法正常工作。

使用:salir='n' 它可以正常工作
使用: salir=='n' 不起作用。

谢谢

<script type="text/javascript">
    var tabla="";
    var numusuario=0;
    var min=0;
    var max=9;
    var salir='s';
    numusuario=prompt("Escribe un número entre 0 y 9: ");
    for(var j=1;salir='n';j++) 
    {
        if(numusuario<0 || numusuario>=10)
        {
            salir='s';
            numusuario=prompt("Escribe un número entre 0 y 9: ");
        }
        else
        {
            for(var x=min;x<=max;x++)
            {
                tabla = tabla + x + " x " + numusuario + " = " + (x*numusuario) + "\n";
            }
            alert(tabla);
            break;
        }
    }
</script>

【问题讨论】:

  • 你应该使用 for 循环进行更深入的研究

标签: javascript loops for-loop evaluation


【解决方案1】:

salir='n' 表示分配。它总是返回true

salir=='n' 表示比较。返回false 因为salir='s' 所以s 不等于n

【讨论】:

    【解决方案2】:

    这里发生了几件事,但主要是您混合了不同形式的流控制:

    • 您正在使用 salir(退出,对于非西班牙语使用者)作为循环结束指示符,但是...
    • 循环条件始终为真(salir='n' 的计算结果为 'n',为真)
    • 您还使用了一个变量 j,但没有任何用处(您什么也不做,它也不参与循环条件)
    • 退出循环的唯一可能性是 break 语句,它存在循环。

    由于我不清楚预期的行为,我无法假设解决方案,但如果要一直运行直到用户写入有效数字,然后编写该数字的乘法表,它可能是:

    <script type="text/javascript">
        var tabla="";
        var numusuario=0;
        var min=0;
        var max=9;
        var salir = 'n';
    
        do {
            numusuario=prompt("Escribe un número entre 0 y 9: ");
            if(numusuario>0 && numusuario<10) {
                for(var x=min;x<=max;x++)
                {
                    tabla = tabla + x + " x " + numusuario + " = " + (x*numusuario) + "\n";
                }
                alert(tabla);
                salir = 's';
            }
        } while(salir == 'n')
    
    
    </script>
    

    do {} while () 至少执行一次并检查最后的条件,这似乎更适合这种情况,我们删除j 变量并使用salir 变量作为流控制,直到用户写入正确数字。

    【讨论】:

      猜你喜欢
      • 2021-09-26
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 2020-10-27
      • 1970-01-01
      相关资源
      最近更新 更多