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 une while 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 par int x = 0; while (x < a) { ...rest of loop; x++; } -- notez que x++ arrive à la fin de la boucle.
  • Yep, un de ces "petits détails" qui peuvent vous mordre.
InformationsquelleAutor user3043998 | 2013-11-28