90

Программистское⁠⁠

Программистское

IT-юмор

7.6K поста53.3K подписчика

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
43
DELETED
Автор поста оценил этот комментарий

ставлю на i++

раскрыть ветку (28)
22
Автор поста оценил этот комментарий
++i
раскрыть ветку (15)
19
DELETED
Автор поста оценил этот комментарий

таки я сторонник традиционной ориентации :-)

раскрыть ветку (14)
10
Автор поста оценил этот комментарий

inc(i), что ли?

раскрыть ветку (3)
5
Автор поста оценил этот комментарий

INC AL

раскрыть ветку (1)
6
Автор поста оценил этот комментарий
Иллюстрация к комментарию
Автор поста оценил этот комментарий
Больной_ублюдок.png
4
Автор поста оценил этот комментарий
i = (i++) + 1;
i = (i--) + 1;
i = ++i;
меняй ориентацию (-:
раскрыть ветку (3)
Автор поста оценил этот комментарий

сразу видно что писал человек далекий от программирования и\или здравого смысла

первое - 2, причем если повезет с языком то может и ексепшен кинуть
второе - зависит от языка, может и без изменений а может и +1
третье - зависит от языка, может и ексепшен кинуть если нет поддержки предварительного инкремента

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Прежде, чем написать первый комментарий, я написал кусок кода для проверки на телефоне в C4droid (компилятор G++). Принял i равной 5 (ну не хочу нули ставить) и получил в результате 6, 6, 6. После вашего комментария повторил опыт и получил те же шестёрки в результате. За одно подредактировал и закинул в C# Shell (C# Offline Compiler) так же на телефоне. Результат - 6, 6, 6.

Ладно, может на Андроиде и на компьютерах разные стандарты? Сажусь за комп и вставляю этот кусок кода в Visual Studio (вариант C++). И тут консоль выдаёт в ответе 7, 5, 6. Ого, мнения разделились. По инерции вставляю этот кусочек кода в варианте C# (.NET Core 3.1) и в консоли 6, 6, 6.

Гхм... Лааадно, в QtCreator привязан MinGW, идем туда. Делаем чисто консольный проектик и в результате имеем 6, 6, 6. Но этот компилятор предупредил, что возможно неопределённое поведение. Хитрец, и нашим и вашим.

Мне стало интересно, что же дальше?

Java. IDE нет, но на компьютере установлена JVM. Вспоминаем компиляцию в командной строке (подсматриваем в гугле :-) ), пару танцев с бубном, и в результате имеем 6, 6, 6.

JavaScript. Онлайн-интерпретатор помогает нам вывести алертом 6, 6, 6.

PHP. Онлайн-интерпретатор PHP Sandbox выводит через echo - 6, 6, 6. Причем в старой версии 4.4.9. И в новой тоже.

Ни одного exception встречено не было. ( Вру, но то были мои косяки )))


Я человек, который не зарабатывает именно программированием, хотя мне интересна эта область знаний. Но данную простыню меня заставило написать сомнение в моём здравом смысле. Результатом прошу считать что существует мировой заговор против компании Microsoft, от которого она успешно отбивается своей оригинальной интерпретацией кода. Скорее всего есть статьи на эту тему, но мне было интересно сделать самому.

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

интересно)

домой попаду поклацаю
так на глаз уже вижу что  у вас крашнет JS так так динамическая типизация у него вава, просто одной цифрой поверять бесполезно

с плюсами после переменной по идее должно дать было два, так как инкремент происходит ПОСЛЕ выполнения кода в блоке но это я тоже проверю


мне больше интересно это проверить на разных языках, питон, руби, шарп, gcc, c

вообще респект вам, что вы такое не поленились на телефоне проверить)
но на будущее если что есть онлайн-компиляторы
в разы удобнее и более релевантные данные,

0
Автор поста оценил этот комментарий
А как же жажда и лень? Впихнуть невпихуемое в одну строку?
раскрыть ветку (5)
7
Автор поста оценил этот комментарий

Return (a > b ? x++ :  - - x)

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Интересно, многие смогут правильно дать результат return, при x=10, например?

0
Автор поста оценил этот комментарий
Ага, именно)) Хотя в жизни с тем чтоб префиксная форма прям была обоснована я лично встречался и использовал её наверное пару раз. Но профессионалов писать "нечитаемое))" на 3-4 строки символов встречал неоднократно.
раскрыть ветку (2)
3
Автор поста оценил этот комментарий

Кстати, именно эта конструкция довольно удобна, за остальные - хз. Да и читается она вполне неплохо

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Тут конечно читабельно) Я имел ввиду что есть люди ( а у меня таких аж несколько знакомых/друзей/товарищей) которые испытывают наверное невероятный оргазм запихнув в return сразу же дикую помесь регулякок, лямбда-выражений и тд и тп. Бесспорно это облегчающие жизнь инструменты экономящие время и поддерживающие лень, но 5-10 экранных строк этого набора букв читать бывает просто невозможно. Хотя для них это несравнимое удовольствие и личная олимпиада.
3
Автор поста оценил этот комментарий

Тут весь вопрос в том, что происходит: некая переменная инкрементируется на некую логическую единицу, или к ней прибавляется 1.

0
DELETED
Автор поста оценил этот комментарий
я тоже) люблю лаконичный код

вообще надо стремиться что бы код не терял в функциональности но был короче - в коротком коде проще ориентироваться и тяжелее накосячить

да и когда воваращаешься к проекту спустя время легче разобраться

0
Автор поста оценил этот комментарий
i = 5;
сколько будет после
i++ + ++i?
раскрыть ветку (8)
2
Автор поста оценил этот комментарий

i = 5;
a = i++ + ++i;

a == 12
i == 7

раскрыть ветку (7)
5
Автор поста оценил этот комментарий

Если ++ стоит перед переменной, то операция выполняется в первую очередь, если после переменной – то в последнюю. Поэтому здесь сначала выполняется ++i, что увеличивает i на единицу. Затем происходит сложение i+i, и результат присваивается переменной a. После этого выполняется i++, и увеличивает i ещё на единицу.

2
Автор поста оценил этот комментарий
А если на компиляторе С вживую проверить?
раскрыть ветку (3)
0
Автор поста оценил этот комментарий

я в консоли браузера проверил

раскрыть ветку (2)
2
Автор поста оценил этот комментарий
С жабоскриптом и так всё ясно, а вот с С есть нюансы.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

В С не определено, где то 13 или 14

0
Автор поста оценил этот комментарий
Сорян, в задачке ошибочка. Надо писать так: ++i + ++i.
раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

тогда a=14, i=7

и таки что с того? К картинке это не имеет отношения, к написанному мной в принципе тоже по причине того что выражения

i++;

++i;

заменяются компилятором на (как писал человек чуть ниже на inc(i); )

0
Автор поста оценил этот комментарий

тоже про это подумал )

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества