2014-02-07 216 views
-4

我寫了一個程序具有在JavaScript的特定輸出:JavaScript的for循環執行

I = 2 J =

I = 3 J = 2

I = 1焦耳= 3

I = 2 J =

I = 3 J = 2

我= 1 J = 3

等等...

但下面的代碼永遠不會導致輸出我需要的。

c=2; 
for (i=c; i<=3; i++){ 
    alert(i); 

    if(i==1){ 
     j=3; 
    }else{ 
     j=j-1; 
    } 

    alert(j); 

    if(i==3){ 
     c=1; 
     continue; 
    } 
} 
+0

這個問題似乎是題外話,因爲它是關於輸出預測。 – devnull

+0

WUDü至少試圖解決我的問題? – user3283237

+0

你還沒有告訴我們你想要做什麼。一個完全合理的答案是'警報(「I = 2 J = 1 \ r \ NI = 3 J = 2 \ r \ NI = 1 J = 3 \ r \ NI = 2 J = 1 \ r \ NI = 3j中= 2 \ r \ ni = 1 j = 3「)'。這有助於你「得到你想要的」嗎? – spender

回答

0

這似乎是一個簡單的問題:你只需通過1與2個變量(i和j)計數1,差異是不是你沒有在1兩種啓動。

你需要在同一時間遞增j和i。

// this for not making infinite loop 
var nb_loop=0; 
var max_loop=10; 
var j=0; 
for (var i=2; i<=3 ; i++){ 
    nb_loop++; 
    j++; 
    console.log("i="+i+", j="+j); // or alert if you want 
    if (j>=3) 
    j=0; 
    if (i>=3) 
    i=0; 
    if (nb_loop>max_loop) 
    break; 
} 

注意事項:a while循環可能比 「爲」

0

我不知道如果u需要使用這更好的,我複製你的輸出(看到控制檯

var c=1, 
    j = 2, 
    i = 0, 
    x = 2; // this a limit for loop to prevent infinite loop 

for (c; c<=3; c++){ 
    if(c == 1){ 
     i = 2; 
    }else if(c == 2){ 
     i = 3; 
    }else{ 
     i = 1; 
    } 

    //alert("i="+i+" j="+c); uncomment to see alert 
    console.log("i="+i+" j="+c); 

    //you can change this condition to stop the loop where you need 
    if(c==3 && x != 0){ 
     c = 1; 
     x--; 
    } 
} 

看到這個例子,也許可以幫助: http://jsfiddle.net/pvMby/1/