Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / For Java / 9 сообщений из 9, страница 1 из 1
04.10.2014, 10:38
    #38766806
_Sven_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Java
Не могу понять работу этого примера, дебагом пробовал, но всё равно не понятно как получается такой результат 137

Код: java
1.
2.
3.
4.
5.
6.
7.
public class Test { 
    public static void main(String[] s) { 
        for (int i = 2; i < 10; i = (i++) + i--, i++) { 
            System.out.print(--i); 
        } 
    } 
} 



Распишите пожалуйста действие цикла кому не лень
...
Рейтинг: 0 / 0
04.10.2014, 11:18
    #38766820
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Java
_Sven_,

синтетический шлак, особенно вот это, что там означает запятая можно только догадываться
Код: java
1.
i = (i++) + i--, i++
...
Рейтинг: 0 / 0
04.10.2014, 17:07
    #38766959
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Java
Оператор-запятая возвращает значение последнего выражения, но вычисляет всё перечисленное в порядке "слева-направо".

P.S. Не надо разбирать такие конструкции.
Надо или игнорировать их, если это пример, или брать автора за причинное место и ненавязчиво уточнять его замыслы.
...
Рейтинг: 0 / 0
04.10.2014, 19:51
    #38767019
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Java
Тема инкрементов - старый боян. Читайте ссылки.

13660195

Обсуждать подобное нет особого смысла. Код содержит
диалектические противоречия и двусмысленности основанные
на недокументированности и стремлении запутать читающего
код.

Так писать просто нельзя.
...
Рейтинг: 0 / 0
04.10.2014, 21:21
    #38767038
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Java
А мне вот интересным показалось разобраться. Спасибо за ссылку, подтолкнула в нужном направлении.
И таки да, авторов такого надо наказывать.
...
Рейтинг: 0 / 0
04.10.2014, 21:34
    #38767044
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Java
как работают инкременты не лишне понимать, например, тут в одной из первых задач это тоже используется
...
Рейтинг: 0 / 0
05.10.2014, 08:07
    #38767123
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Java
maytonТема инкрементов - старый боян. Читайте ссылки.

13660195

Обсуждать подобное нет особого смысла. Код содержит
диалектические противоречия и двусмысленности основанные
на недокументированности и стремлении запутать читающего
код.

Так писать просто нельзя.


что интересно, так писать нельзя в С++.
А в Java так писать можно, потому что порядок вычисления операндов строго определен.
но естественно так писать не нужно, так пишут только в дурацких тестах.
...
Рейтинг: 0 / 0
05.10.2014, 17:54
    #38767273
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Java
_Sven_Не могу понять работу этого примера, дебагом пробовал, но всё равно не понятно как получается такой результат 137

Код: java
1.
2.
3.
4.
5.
6.
7.
public class Test { 
    public static void main(String[] s) { 
        for (int i = 2; i < 10; i = (i++) + i--, i++) { 
            System.out.print(--i); 
        } 
    } 
} 



Распишите пожалуйста действие цикла кому не лень

Мда. Есть же в жизни извращений.
Итак. Распишем.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
int i=2;
if (i >= 10) return; //false
System.out.print(--i); // 1
i = (i++) + i--; //i==3
i++;//i==4
if (i >= 10) return; //false
System.out.print(--i); // 3
i = (i++) + i--; //i==7
i++;//i==8
if (i >= 10) return; //false
System.out.print(--i); // 7
i = (i++) + i--; //i==15
i++;//i==16
if (i >= 10) return; //true


Вроде так.

Если это реальный код- уволить.
Если это реальное тестовое задание- туда не ходить.
...
Рейтинг: 0 / 0
05.10.2014, 23:46
    #38767422
_Sven_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
For Java
Alexey Tomin,

это просто пример из тестов quizful.net, хотел разобраться..теперь разобрался. Спасибо вам за пояснение.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / For Java / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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