powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / do while
7 сообщений из 7, страница 1 из 1
do while
    #38334688
Vitasya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, объясните пожалуйста в чём же разница когда тут результатом будет цифра 3

public class example{
public static void main(String[] args){
int h = 11;
do while(h-->15);
while(--h>4);
System.out.println(h);
}
}

а здесь результат будет 4? почему так?

public class example{
public static void main(String[] args){
int h = 10;
do while(h-->15);
while(--h>4);
System.out.println(h);
}
}
...
Рейтинг: 0 / 0
do while
    #38334706
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убил-бы этих. Кто такие собеседования придумывает.

Цикл while отличается от do while только тем что тело последнего
всегда выполняется хотя-бы 1 раз.

Как фокусы с пред- пост- инкрементом влияют на результат
expression - Х.З. Дебаж и смотри. Сама отладка также будет
затруднена в силу "однострочности" expression. В 1 step
исполняется сразу несколько инструкций.

Вообще эти задания нетипичны и встречаются они только там
где вам хотят сломать мозк. Эти задания имеют мало отношения
к разработке бизнес-кода и являют собой "каку" или "какашку"
которую воспроизводить ни в коем разе не надо. Иначе будешь
бит своими-же коллегами по team.
...
Рейтинг: 0 / 0
do while
    #38334779
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vitasya,

Друзья, объясните пожалуйста в чём же разница когда тут результатом будет цифра 3

public class example{
public static void main(String[] args){
int h = 11;
do while(h-->15);
while(--h>4);
System.out.println(h);
}
}

а здесь результат будет 4? почему так?

потому что

int h = 10;

а не 11, как в предыдущем примере
...
Рейтинг: 0 / 0
do while
    #38334805
Vitasya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

эт понятно) но почему из -за этой 10 результат меняется? что там произойдёт можете объяснить?
...
Рейтинг: 0 / 0
do while
    #38335017
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VitasyaMasterZiv,

эт понятно) но почему из -за этой 10 результат меняется? что там произойдёт можете объяснить?

Попробуй 13 и 12. Посмотри что получиться ;-)
И вообще любое четное или не четное число меньшее 15.
А вообще все дело в этом
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
	public static void main(String[] args){
		int h = 11; 
		do {
			while(h-->15) {};
		} while(--h>4);
		System.out.println("-------------------------");
		System.out.println(h);
	}



Вот так он выполняется!
Соответственно декремент выполняется 2 раза, перед сравнением с 4.
Первый раз при сравнении с 15, второй раз при сравнении с 4.
Т.о. в зависимости от четности или не четности начального значения будет выводиться либо 3 либо 4.
Где-то так.
...
Рейтинг: 0 / 0
do while
    #38335548
Vitasya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
врубился..спасибо большое..фишка значит в чётной или нечётной переменной, с работой do while там понятно
...
Рейтинг: 0 / 0
do while
    #38337473
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VitasyaMasterZiv,

эт понятно) но почему из -за этой 10 результат меняется? что там произойдёт можете объяснить?

Потому что программа так написана.
Что произойдёт -- программа выполнится, получится такой результат.
Что там ещё надо объяснять ?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / do while
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]