首页 > 解决方案 > 使用嵌套的 for 循环创建空心形状 (Java)

问题描述

目标是创建一个程序,它将打印一个空心形状。用户输入将是正方形中空心形状的数量。

我制作了这个程序,这应该是输出。1 2 3

截至目前。如果输入小于或等于 6,这个程序可以给出正确的输出。知道如何使这个无限?

package tester;

import java.util.Scanner;

public class Tester {


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

        int ui, sideL;

        System.out.println("(Note: The number should be greater than or equal to 1: ");
        System.out.println("Enter a number: ");

        ui = input.nextInt();

        sideL = (ui * (ui - 1)) + 1;

        if (ui >= 1) {

            for (int a = 1; a <= sideL; a++) {
                for (int b = 1; b <= sideL; b++) {
                    if (a == 1 ||
                        b == 1 ||
                        a == ui ||
                        b == ui ||
                        a == sideL ||
                        b == sideL ||
                        a == ui + (ui - 1) ||
                        b == ui + (ui - 1) ||
                        a == ui - 1 + (ui + (ui - 1)) ||
                        b == ui - 1 + (ui + (ui - 1)) ||
                        a == ui - 1 + (ui - 1 + (ui + (ui - 1))) ||
                        b == ui - 1 + (ui - 1 + (ui + (ui - 1))) ||
                        a == ui - 1 + (ui - 1 + (ui - 1 + (ui + (ui - 1)))) ||
                        b == ui - 1 + (ui - 1 + (ui - 1 + (ui + (ui - 1))))) {

                        System.out.print("* ");

                    } else {
                        System.out.print("  ");
                    }
                }
                System.out.println();
            }
        } else {
            System.out.println("Invalid input!");
        }
    }
} 

标签: javaloopsfor-loopnested-loopsshapes

解决方案


推荐阅读