Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / do while / 7 сообщений из 7, страница 1 из 1
17.07.2013, 19:28:28
    #38334688
Vitasya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
do while
Друзья, объясните пожалуйста в чём же разница когда тут результатом будет цифра 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
17.07.2013, 19:45:48
    #38334706
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
do while
Убил-бы этих. Кто такие собеседования придумывает.

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

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

Вообще эти задания нетипичны и встречаются они только там
где вам хотят сломать мозк. Эти задания имеют мало отношения
к разработке бизнес-кода и являют собой "каку" или "какашку"
которую воспроизводить ни в коем разе не надо. Иначе будешь
бит своими-же коллегами по team.
...
Рейтинг: 0 / 0
17.07.2013, 20:49:18
    #38334779
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
do while
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
17.07.2013, 21:16:46
    #38334805
Vitasya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
do while
MasterZiv,

эт понятно) но почему из -за этой 10 результат меняется? что там произойдёт можете объяснить?
...
Рейтинг: 0 / 0
18.07.2013, 07:35:43
    #38335017
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
do while
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
18.07.2013, 13:43:33
    #38335548
Vitasya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
do while
врубился..спасибо большое..фишка значит в чётной или нечётной переменной, с работой do while там понятно
...
Рейтинг: 0 / 0
19.07.2013, 19:22:10
    #38337473
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
do while
VitasyaMasterZiv,

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

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


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