Здравствуйте, zubr, Вы писали:
Z>long a = 6l; Z>if (a == 0) { Z> if (false) Z> return; Z>} Z>a = 5;
Z>и получил...
Z>long a = 6l; Z>if (a != 0) { Z> a = 5; Z>} else { Z> if (false) Z> return; Z>}
Z>в первом случае переменная a всегда будет после кода равна 5! а во втором случае уж как получится... Z>может я просто чего то не понимаю?
Ну так понятно, какой же это инверт? в первом случае у тебя a=5 вообще в блок if не входило а во втором уже входить начало
т.е. первый раз у тебя должно было бы быть
long a = 6l;
if (a == 0) {
if (false)
return;
}
else a = 5;
Здравствуйте, DrZubr, Вы писали:
DZ>Здравствуйте, zubr, Вы писали:
Skipped... Z>>в этом участке кода возможные выходные значения a : {5, 99} DZ>Всегда на выходе 5.
да, я во внутреннем if ставил true/false... думал от него зависит какие то функции вводил потому получалось {5, 99}
Skipped... Z>>а в этом {5, 10, 99} DZ>Здесь на выходе уже или 5 или 10.
да согласен. DZ>Судя по всему бага. IDEA 5.0.2 build 3511.
а у меня 4.5.4 build 2253
Здравствуйте, zubr, Вы писали:
Z>Здравствуйте, Donz, Вы писали: D>>Баг-репорт то JetBrains'у отправили? Рассуждениями на форуме РСДН исправления не добьёшься
Z>нет.
Z>думал что ошибка где то у меня.
Здесь нет бага. Т.е. всё вполне объяснимо
Переменная а — не используется после if => преобразования ничего не портит.
Добавь после "а=5;" строчку, в который будет использоваться "а" и сравни результат преобразования.
Здравствуйте, zubr, Вы писали:
Z>Всем привет.
Z>был у меня приблизительно следующий кусок кода... Z>я попробовал сделать Invert if.
Z>
Z>long a = 6l;
Z>if (a == 0) {
Z> if (false)
Z> return;
Z>}
Z>a = 5;
Z>
Z>и получил...
Z>
Z>long a = 6l;
Z>if (a != 0) {
Z> a = 5;
Z>} else {
Z> if (false)
Z> return;
Z>}
Z>
Z>в первом случае переменная a всегда будет после кода равна 5! а во втором случае уж как получится... Z>может я просто чего то не понимаю?
Вся шутка в том что а не входит в иф — оно выполняется и при труе и при фалсе, чтобы сделать такой переворот как ты сделал первоночально всё должно было выглядеть так:
long a = 6l;
if (a == 0) {
if (false)
return;
}else{
a = 5;
}