Написал код решения данной задач, но не могу понять в чем ошибка
int a = 0;
while (a!=10) {
if (a==0){
int c = 0;
while (c!=19){
System.out.print("Б");
c++;
}
} else if (a==9){
int c = 0;
while (c!=19){
System.out.print("Б");
c++;
}
}
int b = 0;
while (b != 20) {
if (b==0) {
System.out.print("Б");
} else if(b==19){
System.out.print("Б");
} else if(b>0 && b <20){
System.out.print(" ");
}
b++;
}
System.out.println();
a++;
}
}
}
Выдает вот такое решение:
ББББББББББББББББББББ Б(Откуда взялась?)
Б Б
Б Б
Б Б
Б Б
Б Б
Б Б
Б Б
Б Б
ББББББББББББББББББББ Б (Откуда взялась?)
не понимаю откуда берутся две лишние буквы Б
comavibe
6 уровень
Написал код, который выводит две лишние буквы Б
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
29 июня 2023, 11:22
У тебя условия для А и Б отрабатывают одновременно, когда строка для условия А уже написана ты не переводишь строку и Б начинает писаться в нее же. А в целом эту простыню можно переписать сильно проще. Если ты подумаешь, но поймёшь, что писать букву тебе нужно только в четырёх конкретных случаях, или это верхняя граница или нижняя или левая или правая, заметь именно ИЛИ. Т.е. выполнение любого из этих условий есть причина писать букву в консоль. Во всех остальных случаях тебе нужно выводить пробел. После того как строчка заполнена символами нужно сделать перевод строки.
Т.е. тебе нужны обычные вложенные циклы по Длине и Ширине соответственно и один IF.
0
comavibe
29 июня 2023, 11:57
Спасибо! Теперь понятно)
0
ГоффMaster
1 июля 2023, 12:30
https://javarush.com/help/89714
0