簡體   English   中英

for 循環參數在 JavaScript 中無法正常工作

[英]for loop parameter not working properly in JavaScript

你好:我是新編程。 我的問題是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>

salir='n'表示賦值。 它總是返回true

salir=='n'表示比較。 它返回false因為salir='s'所以s不等於n

這里發生了幾件事,但主要是你混合了不同形式的流量控制:

  • 您正在使用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變量作為流量控制,直到用戶寫入正確的數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM