首页 > 解决方案 > 为了让程序正常工作,我尝试了很多不同的方法。我正在尝试打印一个长度和高度为两个整数的空心盒子

问题描述

你的任务是从用户那里读取一对正整数 L 和 H。L 和 H 都将小于 21。然后您的程序会打印出一个空的星号框,其中包含 L 个水平星和 H 个垂直星。

盒子是空的。例如,如果输入数据是 6 和 4,那么输出应该是:


package com.company;
import java.util.Scanner;
import java.lang.String;

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

        System.out.println("First int: ");
        int L = keyboard.nextInt();

        System.out.println("Second Int: ");
        int H = keyboard.nextInt();

        if ((L < 21) && (H < 21)) {
            for(int i = 0; i < L; i++){
                System.out.print("*");

            }
        }

    }
}

标签: java

解决方案


修改您的主要方法,如下所示。我没有测试过,但它应该给你一些想法。

public static void main(String[] args) {

    try (Scanner keyboard = new Scanner(System.in)) {

        System.out.println("First int (length): ");
        int L = keyboard.nextInt();

        System.out.println("Second Int (height): ");
        int H = keyboard.nextInt();

        if ((L > 0 && H > 0) && (L < 21 && H < 21)) {

            for (int j = 0; j < H; j++) {
                for (int i = 0; i < L; i++) {
                    System.out.print("*");
                }
                System.out.println();
            }

            return;
        }           
    }

    System.out.println("Bad input. Please enter values between [1-20].");
}

推荐阅读