If/else if
Résolu
Grafiteur
-
Grafiteur -
Grafiteur -
Bonjour,
je vous explique rapidement, je fais une map pour un jeu mais j'ai un petit probléme de génération de motif
en gros je veux ce motif comme ça :
V = vide
Alors qu'avec ce code :
Les deux boucle if sont bonnes, elles me font ce qui est attendu mais
je vu que si n%6 = 0 alors n%3 = 0
MAIS
normalement un simple else if devrait débloquer cette situation ? non ?
je tourne en rond depuis 1h, après promis je vais me coucher...
actuelle j'ai ça :
je vous explique rapidement, je fais une map pour un jeu mais j'ai un petit probléme de génération de motif
en gros je veux ce motif comme ça :
V = vide
VVVVVVVVVVVV...
VVVVVVVVVVVV...
VVVV##VVVV##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
V##VVVV##VVV...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
VVVV##VVVV##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
V##VVVV##VVV...
....
Alors qu'avec ce code :
for(int l = 1; l < board.length-1; l++) { for(int c = 1; c < board[0].length-1; c++) { if ( l%6==0 && (c%6==1 || c%6==2)) { board[l][c] ='#'; } else if ( l%3==0 && ((c+1)%6==0 || (c+1)%6==5)){ board[l][c] = '#'; } } }
Les deux boucle if sont bonnes, elles me font ce qui est attendu mais
je vu que si n%6 = 0 alors n%3 = 0
MAIS
normalement un simple else if devrait débloquer cette situation ? non ?
je tourne en rond depuis 1h, après promis je vais me coucher...
actuelle j'ai ça :
VVVVVVVVVVVV...
VVVVVVVVVVVV...
VVVV##VVVV##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
V##V##V##V##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
VVVV##VVVV##...
VVVVVVVVVVVV...
VVVVVVVVVVVV...
V##V##V##V##...
....
A voir également:
- If/else if
- If exist - Forum Java
- The realtek network controller was not found. if deep sleep mode is enabled please plug the cable ✓ - Forum Pilotes (drivers)
- If char ✓ - Forum Programmation
- The Realtek Network Controller was not found. - Forum Pilotes (drivers)
- Php if multiple conditions ✓ - Forum PHP
2 réponses
boolean paire = false; for(int l = 1; l < board.length-1; l++) { for(int c = 1; c < board[0].length-1; c++) { if ( l%6==0 && (c%6==1 || c%6==2)) { board[l][c] = '#'; paire = true; } if ( l%3==0 && ((c+1)%6==0 || (c+1)%6==5) && !paire){ board[l][c] = '#'; } paire = false; } }
bloqué par 6 lignes de code, LE REVE TOTAL
Bonjour,
Si tu fais un else, il s'applique sur l'ensemble de la condition, pas juste sur la partie l%6 à moins de la décomposer :
Remarque : tu peux aussi faire tout ça en une seule condition :
Si tu fais un else, il s'applique sur l'ensemble de la condition, pas juste sur la partie l%6 à moins de la décomposer :
if (l % 6 == 0) { if (c % 6 == 1 || c % 6 == 2) board[l][c] = '#'; } else if (l % 3 == 0) { if (c % 6 == 4 || c % 6 == 5) board[l][c] = '#'; }
Remarque : tu peux aussi faire tout ça en une seule condition :
if ((l % 6 == 0 && (c % 6 == 1 || c % 6 == 2)) || (l % 6 != 0 && l % 3 == 0 && (c % 6 == 4 || c % 6 == 5))) board[l][c] = '#';
Problème résolu, des fois c'est plus long, mais au moins ça fonctionne !!!