Figure d'étoile java
Résolu
sysy
-
sysy -
sysy -
Bonjour,je débute en java , j'essaye de réaliser une figure avec des étoile en forme de croix qui ressemble à ceci (sans prendre en compte les points):
* ........ *
...* ...*
......*
...*... *
* .........*
Voici mon programme:
class essai {
public static void main(String[] args){
int max =9;
int i=1;
int j=0;
while(i<=100){
j=1;
while(j<=max){
if(i==j){System.out.print("*");}
else {if(j==max){System.out.println("*");max- -;}
else {System.out.print(" ");}}
j++;}
i++;}
}
}
je n'obtiens pas vraiment la figure désirée,je ne sais pas où est l'erreur pouvez vous m'aidez?
* ........ *
...* ...*
......*
...*... *
* .........*
Voici mon programme:
class essai {
public static void main(String[] args){
int max =9;
int i=1;
int j=0;
while(i<=100){
j=1;
while(j<=max){
if(i==j){System.out.print("*");}
else {if(j==max){System.out.println("*");max- -;}
else {System.out.print(" ");}}
j++;}
i++;}
}
}
je n'obtiens pas vraiment la figure désirée,je ne sais pas où est l'erreur pouvez vous m'aidez?
Configuration: Windows XP Internet Explorer 7.0
1 réponse
-
Bonsoir,
Essaie avec ceci :while(i<=max){ j=1; while(j<=max){ if((i == j) || (j == (max - i + 1))) { System.out.print("*"); } else { System.out.print(" "); } j++; } i++; }
Pourquoi as-tu mis "tant que i est inférieur ou égal à 100"? Ta figure est symétrique (horizontale, verticale, centrale, tout ce qu'on veut quoi), donc il est logique que ton parcours en longueur (j) soit aussi long que ton parcours en hauteur (i).
Conseil : essaie de commencer tes boucles à 0, c'est beaucoup plus facile pour les informaticiens (et donc quand on écrit un programme en général on a beaucoup moins de bugs dûs aux dépassements d'index car on a l'habitude).-
-
j'ai modifier le programme:
public class essai2 {
public static void main(String[] args){
int max =9;
int i=1;
int j=0;
while(i<=max){
j=1;
while(j<=max){
if((i == j) || (j == (max - i + 1))) {
System.out.print("*");
}
else {if (j==max){System.out.println();}
else {
System.out.print(" ");
}}
j++;
}
i++;
}
}}
j'obtient la figure , sauf qu'il y a une ligne qui est décalé par râpport au autre:
*.........*...*...*
......*
...*...*
*.........*
-