Dog[] mydogs = new Dog[3];
int x = 0;
if (x<3) {
mydogs[x] = new Dog();
mydogs[x].size = 12;
mydogs[x].bark(); //Yip Yip
x = x+1;
}
void bark() {
if (size > 60) {
System.out.println("Woof, Woof ");
} else if (size > 14) {
System.out.println("Ruff, Ruff ");
} else {
System.out.println("Yip, Yip ");
}
Я получаю вывод «Yip Yip», но я думаю, что, поскольку ставится условие (x <3). тогда не следует ли его трижды печатать? лежать ниже
Ип, Ип
Ип, Ип
Ип, Ип
размер - это переменная экземпляра в классе Dog
Вместо этого используйте цикл while if.worked. а как объясните пожалуйста?
Прочтите о операторах if и while в java
if - это состояние, while - это петля.
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он относится к базовому синтаксису Java, который лучше изучать с помощью книг или руководств.
Понятно. Оператор if проверяет, является ли выражение истинным или ложным, а затем запускает код внутри оператора, только если он истинен. Код внутри цикла запускается только один раз ... Оператор while - это цикл. По сути, он продолжает выполнять код в операторе while, пока выражение истинно.




if не вызывает выполнение условия в цикле. Для этого вам нужно использовать петлю.
while (x<3) {
//changes made to to mydogs[x] are irrelevant to the execution of the loop
x = x+1;
}
Этот цикл будет выполняться непрерывно, пока условие x < 3 не перейдет в состояние false, что произойдет только после трехкратного выполнения x = x+1. до тех пор код внутри тела цикла будет выполняться повторно.
Замените
ifнаwhile, чтобы зациклить