1

ユーザー入力に基づいて 2 つの正方形を作成したので、1 つは塗りつぶされた正方形で、もう 1 つは中空の正方形です。教授の勧めに従って、1 つずつ印刷するように設定しましたが、今は同じ行に印刷する必要があります。コードを重ねて印刷するのではなく、横に並べて印刷するにはどうすればよいですか?

import java.util.Scanner;
public class javaapplication30 {


public static void main(String[] args) {
     Scanner in = new Scanner(System.in);

    int side = 0;
    System.out.printf("This program will display a full and an empty square given the side length.\n");
    System.out.print("Enter a side length: ");
    side = in.nextInt();

    //Filled square

      for (int i=1; i <=side; i++) {  
        for (int j=1; j <= side; j++) {
        System.out.printf("*");
    }
        System.out.println();
      }

     System.out.println();

    //Hollow square
    for (int i=1; i <=side; i++) {    //first row
        System.out.printf("*");
    }
    System.out.println();

    for (int j=1; j <= side-2; j++) {  
    for (int i=1; i <= side; i++) {  //middle rows
        if (i == 1 || i == side) {
        System.out.printf("*"); 
        }
        else {
            System.out.print(" ");
             }
    }
    System.out.println();     
    }


    for (int i=1; i <=side; i++) {  //last row
        System.out.printf("*");
    }
    System.out.println();



}
}

例として、整数「5」を入力すると、現在のプログラムで得られる

*****
*****
*****
*****
*****

*****
*   *
*   *
*   *
*****

今、私は出力を取得しようとしています

***** *****
***** *   *
***** *   *
***** *   *
***** *****

どんな助けでも大歓迎です、ありがとう。

4

1 に答える 1

0

完全に機能するコード。コンパイルして実行できます。おかげさまで成功しました。

import java.util.Scanner;
     class javaapplication30 {

    public static void main(String[] args) {
         Scanner in = new Scanner(System.in);

        int side = 0;
        System.out.printf("This program will display a full and an empty square given the side length.\n");
        System.out.print("Enter a side length: ");
        side = in.nextInt();
      System.out.println();
        //Filled square
        int row = (side * 2)+1;
          for (int i=1; i <=side; i++) {  
            for (int j=1; j <= row; j++) {
                if(j==side +1){
                System.out.print(" ");
                continue;
                }if(((j>side+2) && (i >1 && i< side) && (j<row))){
                    System.out.print(" ");
                    continue;
                }else{
             System.out.print("*");
                }
        }
            System.out.println();
          }

         System.out.println();

    }
    }
于 2016-02-27T04:20:44.797 に答える