Ilya
на лиспе, говорят
Maxim
а можете объяснить?
Maxim
почему не 12?
Ilya
http://darky2000.livejournal.com/72865.html?thread=129185#t129185
Maxim
пожалуйста
Dart011
Я честно говоря с самого начала думал,что там 12,просто стебнулся
Dart011
Ща проверим
Dart011
Вообще не вопрос
Dart011
Где мой компудахтер
Marseille
почему не 12?
потому что с каждым вызовом увеличавется на 1
Marseille
в js по крайне мере
Maxim
var i = 5;
i = ++i(5+1?) + ++i;
Maxim
у нас же был i=5
Maxim
получается плюсуем к нему 1 =6
Maxim
и во второй половине так же
Maxim
?
Viktor
каждая
Viktor
операци
Viktor
увеличивает
Viktor
на 1
Dart011
Я проверил - там 13
Maxim
то есть во втором случае он сохраняет то что было в первом?
Maxim
да 13 тогда)
Maxim
спасибо)
Dart011
Чет я даже сам зашкварился с этими операторами
Dart011
Надо подучить
Ilya
вот что интересно - это то что
i = i++ + i++;
в JS получается 11
Marseille
ⓛⓤⓒⓘⓤⓢ➁➆
А я и i++ + ++i? :)
ⓛⓤⓒⓘⓤⓢ➁➆
Marseille
Maxim
5++
он же ничего не плюсует к 5,?
Viktor
i = i++ + i++;
5 + 6 = 11
Viktor
пост фикс
Marseille
А почему не должно? 5+6 же
потому что ++i сначала увеличивается, а потом вызывается, а i++ сначала вызывается, а потом увеличивается
Viktor
возвращает в следующем выражении
Viktor
значение предыдущего
Ilya
и, по идее, два раза
Ilya
ⓛⓤⓒⓘⓤⓢ➁➆
Эмм, ну хз
Ilya
по изначальному дизайну, если я ничего не путаю, они обращаются к ячейке памяти и изменяют ее значение на бинарный 1
Maxim
var a = 1, b = 1, c, d;
c = ++a; alert(c);
d = b++; alert(d);
c = (2+ ++a); alert(c);
е мое
почему c=5?
Viktor
ну очевидно же
Maxim
@Oladushkin скажи, могу попросить 10 минутной помощи в скайпе? может при обьъяснении пойму?
Yevhenii
Viktor
смотри. Вся малина в том. Что когда видишь ++a, то считай что переменная уже увеличилась, когда видишь a++ то считай что переменная увеличится только когда в след. раз ее вызовешь
Viktor
++a значение доступно сразу. а++ значение доступно, только если еще раз вызовешь эту переменную
Maxim
то есть сначала a++ - ничего не будет, а когда ее выведу в след раз то она будет +?
Viktor
да
Maxim
в вот в этом примере
var a = 1, b = 1, c, d;
c = ++a; alert(c);
d = b++; alert(d);
c = (2+ ++a); alert(c);
в третем c = (2+ ++a); alert(c);
a сохранила то что к ней плюсанил +1 в первом примере
Viktor
да
Viktor
и еще раз увеличилась
Viktor
и сразу вернула новое значение
Viktor
учебник Ильи выучивал вдоль и поперек)
Viktor
крутая штука
Maxim
это какой учебник?
Anonymous
Учебник по префиксным инкрементам
Viktor
😂
Maxim
@Oladushkin спасибо вроде разобрался
Viktor
не за что
Viktor
а js
Viktor
уже в школах преподают?
Dart011
Обращайся Максимка
Dart011
Я бы обрадовался
Maxim
var a = 1, b = 1, c, d;
c = ++a; alert(c);
d = b++; alert(d);
c = (2+ ++a); alert(c);
d = (2+ b++); alert(d) // d=4, почему что первый раз мы прибавли +1, он плюсанулся после повтороного обращения, и сейчас прибавили +1, и когда мы обратились к нему еще раз то он нам выдает 4
Maxim
не в школе
курсы прохожу
Viktor
да
Viktor
верно
Dart011
Лол
Maxim
ух
Maxim
var a = 2;
var x = 1 + (a *= 2)
alert(x);
тут x = 9?
Maxim
Умножает значение переменной на значение выражения и присваивает результат переменной.
Оператор присваивания умножения (*=)
сначала нужно умножить a на 2, а потом значение еще раз умножить на a и прибавить 1?
Maxim
а нет
Maxim
нифига
Maxim
Синтаксис
Оператор: x *= y
Значение: x = x * y
var a = 2;
var x = 1 + (a *= 2)
alert(x);
тут x = 5
Maxim
так же?