使用java绘制ASCII艺术

使用java绘制ASCII艺术,java,Java,我有一个问题,绘制一个大小限制为20个字符的正方形ASCII(大小为“正方形”),这是我的代码,我已经测试过,它可以工作,但当我把数字超过20时,它显示一个错误,请帮助,谢谢 class Main { public static void printSquare(int size) { int line = 1; while (line <= size) { // For each line of square int wi

我有一个问题,绘制一个大小限制为20个字符的正方形ASCII(大小为“正方形”),这是我的代码,我已经测试过,它可以工作,但当我把数字超过20时,它显示一个错误,请帮助,谢谢

class Main {
    public static void printSquare(int size) {
        int line = 1;

        while (line <= size) { // For each line of square
            int width = size; // width of square segment
            int i = 1; // display square segment

            while (i <= width && size <= 20) {
                System.out.print("*");
                i = i + 1;
            }

            System.out.println(); // Newline
            line = line + 1;
        }
    }
}
主类{
公共静态空白打印正方形(整数大小){
内线=1;

而(行问题是,如果大小大于20,则永远不会打印
*
。将其限制为20的更好方法是在循环之前限制大小

public static void printSquare(int size) {
    if(size > 20) {
       size = 20;
    }
    int line = 1;
然后编辑

while (i <= width && size <= 20) {

while(i问题是,如果大小大于20,则永远不会打印
*
。将其限制为20的更好方法是在循环之前限制大小

public static void printSquare(int size) {
    if(size > 20) {
       size = 20;
    }
    int line = 1;
然后编辑

while (i <= width && size <= 20) {

while(谢谢,但我的意思是当size的值大于20时将*显示为0,所以我将它们修改为:public static void printSquare(int size){if(size>=20&&size>=0){size=0;}int line=1;好的。没有明确说明,因此我的答案,下次尝试提供更多信息:)顺便说一句,你可以通过勾选答案左边的轮廓来接受答案。谢谢,但我的意思是当size的值大于20时将*显示为0,所以我将它们修改为:public static void printSquare(int size){if(size>=20&&size>=0){size=0;}int line=1;好的。它没有明确说明,因此我的答案,下次尝试提供更多的信息:)顺便说一句,你可以通过勾选答案左边的提纲来接受它。@MeenaO-签出这个问答。@MeenaO-签出这个问答。