2016-03-14 1 views
-1

J'ai essayé de résoudre l'exercice échiquier javascript éloquent avec le code suivant. Les lignes s'impriment dans le bon ordre mais pour une raison que je n'arrive pas à trouver, la boucle est infinie. Toute aide pour signaler quel est le problème serait très appréciée, merci.Javascript échiquier

mon code ressemble à ceci:

var line= ['# # # #', ' # # # #'] 

for (var i = 0; i < 7; i ++) { 
    if (i = (i-1)%2 == 0) 
     console.log(line[0]); 
     else console.log(line[1]); 
}; 
+0

parce que 'i = (i-1)% 2 == 0 'remplace la valeur de' I' –

Répondre

1

i sera toujours inférieur à la limite de la boucle, en raison de votre mission à l'intérieur du if état

for (var i = 0; i < 7; i ++) { 
    // i & 1 is a mask that matches the rightmost bit, which, if set 
    // indicates that a number is odd 
    console.log(line[i & 1]); 
} 
0

Merci d'avoir répondu, je n'a pas réalisé le problème avec la condition définie à i dans la déclaration if (erreurs débutant). Je modifié le code à la suivante et il fonctionne parfaitement bien, et il semble être un moyen code plus court que ceux offerts dans d'autres solutions:

var line= ['# # # #', ' # # # #'] 

    for (var i = 0; i < 7; i ++) { 

    if (i%2 == 0) 
     console.log(line[0]); 

    else console.log(line[1]); 
    }; 

Merci pour votre temps!

0

Vous pouvez programmer un caractère de calcul au lieu d'avoir un tableau de valeurs.

var html = ""; 
 
for(var i = 0; i<7; i++){ 
 
    for(var j=0; j<7; j++){ 
 
    html += (i+j) % 2 == 0?"# ":"&nbsp;&nbsp;"; 
 
    } 
 
    html+="<br/>" 
 
} 
 
document.write(html)