Печать квадратов по рисунку на экране. Использование вложенных циклов - PullRequest
0 голосов
/ 12 января 2019

Пользователь вводит количество квадратов для создания. Пользователь также указывает размер каждого квадрата, вводя размер. Затем программа распечатывает квадраты со звездами на экране с размером, указанным пользователем. Квадраты должны быть нарисованы в последовательности.

В приведенном ниже примере напечатаны 3 квадрата с размерами 5x5, 3x3 и 7x7.

Вывод должен выглядеть так:

Введите количество фигур: 3 Введите размер фигуры 1: 5 Введите размер фигуры 2: 3 Введите размер фигуры 3: 7
















Моя первая попытка работает хорошо, но печатает квадраты сразу после ввода количества квадратов. Вот так -

import java.util.Scanner;

public class Main3 {

static  Scanner scanner = new Scanner(System.in);
static int numOfShapes;
static String[] shape;
static int shapeSize;
static int nrOfRows;
static int nrOfCols;

public static void main(String[] args) {


    System.out.print("Enter the number of shapes:");
    numOfShapes = scanner.nextInt();
    scanner.nextLine();

    getShape();

}
public static void getShape(){

    for(int i = 0; i < numOfShapes; i++){
        System.out.print("Enter size of shape " + (i + 1) + "\n");
        shapeSize = scanner.nextInt();
        scanner.nextLine();
        shape  = new String[shapeSize];


        nrOfRows = shapeSize;
        nrOfCols = shapeSize;

        for (int row = 0; row < nrOfRows; row++) {

            for (int col = 0; col < nrOfCols; col++) {
                shape[i] = "*";
                System.out.printf("%s ", shape[i]);
            }
            System.out.println();
        }
    }
}

}

Моя вторая попытка выглядит так, но, похоже, не работает должным образом. Я не могу понять, почему.

import java.util.Scanner;

публичный класс Main {

static int numOfShapes;
static int sizeOfShape;
static String[] arrayToPrint;
static Scanner scanner = new Scanner(System.in);
static int nrOfRows;
static int nrOfCols;

public static void main(String[] args) {



    System.out.print("Enter the number of shapes to print:");
    numOfShapes = scanner.nextInt();

    for (int i = 0; i < numOfShapes; i++) {
        System.out.println("Enter the size of shape " + (i + 1));
        sizeOfShape = scanner.nextInt();
        scanner.nextLine();
        arrayToPrint = new String[sizeOfShape];
        //arrayToPrint[i] = Integer.toString(sizeOfShape);
    }

    nrOfRows = sizeOfShape;
    nrOfCols = sizeOfShape;

    for (int i = 0; i < numOfShapes; i++) {
        for (int row = 0; row < nrOfRows; row++) {
            for (int col = 0; col < nrOfCols; col++) {
                arrayToPrint[i] = "*";
                System.out.printf("%s ", arrayToPrint[i]);
                System.out.println();
            }
            System.out.println();
        }
        //System.out.println();
    }
}

}

...