Comment Imprimer un carré avec des astérisques en java avec boucle while seulement?
Je voudrais savoir comment faire pour imprimer un carré avec des astérisques en java avec un while
boucle seulement
mais avec for
boucle et avec toutes les opérations logiques comme: ET ou OU
Ce code doit faire quelque chose comme ça: si nous entrons 4
elle doit imprimer:
* * * *
* *
* *
* * * *
mais il n'quelque chose d'autre, comme ça:
* **
*
Scanner input = new Scanner(System.in);
int squareside ;
System.out.print("Enter the side: ");
squareside = input.nextInt();
while ( squareside != -1 )
{
int xaxis = 0 ;
while ( xaxis < squareside )
{
if( xaxis == 0 ) {
System.out.print(" *") ;
}
else if( xaxis == squareside - 1){
System.out.print(" *") ;
}
else
System.out.print(" ") ;
xaxis ++ ;
}
int yaxis = 0 ;
while( yaxis < squareside )
{
if( yaxis == 0 )
{
System.out.print(" *");
}
else if( yaxis == squareside - 1)
{
System.out.print(" *");
}
else
System.out.print(" ");
yaxis ++;
System.out.println();
}
System.out.print("Enter the side: ");
squareside = input.nextInt();
}
- Il n'y a rien que vous pouvez faire avec un
for
boucle que vous ne pouvez pas faire avec unewhile
boucle.for (int x = 0; x < a; x++)
==>int x = 0; while (x < a) { x++; rest of loop
- Et pensez à comment vous pouvez le faire: Dessiner la ligne du haut, puis la boucle à tirage N-2 identiques milieu de lignes, puis de dessiner la ligne de fond. Ne mettez pas le haut et le bas des lignes de la boucle principale.
- Presque bon. Plus précisément:
for (int x = 0; x < a; x++)
se traduit parint x = 0; while (x < a) { ...rest of loop; x++; }
-- notez quex++
arrive à la fin de la boucle. - Yep, un de ces "petits détails" qui peuvent vous mordre.
Vous devez vous connecter pour publier un commentaire.
rapide et détaillé, mais devrait fonctionner. Il n'utilise pas
if
ou quoi que ce soit d'autre, saufwhile
boucle. Se sentir libre pour optimiser :C'est une solution simple à ce problème. Des espaces peuvent être facilement ajoutés entre astérisques, si nécessaire:
Vous pouvez remarquer que vous avez l'impression de se heurter à la frontière des valeurs. C'est alors (x ou y) est 0 ou (x ou y) est égal à squareside-1.