2014-02-07 178 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/