Рисование ASCII-графики с помощью java

#java

#java

Вопрос:

У меня возникла проблема с рисованием квадратного ASCII с ограничением размера в 20 символов (размер «квадрат»), это мой код, я протестировал, и он работает, но когда я набираю число больше 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 amp;amp; size <= 20) {
                System.out.print("*");
                i = i   1;
            }

            System.out.println(); // Newline
            line = line   1;
        }
    }
}
 

Комментарии:

1. @MeenaO — проверьте эти вопросы и ответы.

Ответ №1:

Проблема в том, что вы никогда не будете печатать * , если размер больше 20. Лучшим способом ограничить его до 20 было бы ограничить размер перед циклом.

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

а затем редактировать

 while (i <= width amp;amp; size <= 20) {
 

Для

 while (i <= width) {
 

Комментарии:

1. спасибо, но я имею в виду отображать * в 0, когда значение size больше 20, поэтому я изменяю их на: public static void printSquare( int size ) { if ( size >= 20 amp;amp; size >= 0) { size = 0; } int line = 1;

2. Хорошо. Это не было четко указано, и, следовательно, мой ответ, в следующий раз постарайтесь предоставить немного больше информации 🙂 И, кстати, вы принимаете это как ответ, отмечая контур слева от ответа.