Не правете това!!!

37 отговора 0 прегледа
#1

Не правете това!!!

if(xdControlId == WIN_AREA_PB_OK) bOk = 1;
else if (xdControlId == WIN_AREA_PB_NEXT) bOk = 2;
else if (xdControlId == WIN_AREA_PB_PREV)bOk = 3;


И като ми ги подкара 10 такива,направо ми се губи логиката


Просто поредната боза.Не можах да се стърпя.Извенете ме .

Отговор
в отговор на 3мeй #2

Re: Не правете това!!!

В случая един суич май е по-подходящ, но все пак и това ми се струва четливо. Да не би на теб да ти е по-четливо така:
if (xdControlId == WIN_AREA_PB_OK)
{
bOk = 1;
}
else
{
if (xdControlId == WIN_AREA_PB_NEXT)
{
bOk = 2;
}
else
{
if (xdControlId == WIN_AREA_PB_PREV)
{
bOk = 3;
}
}
}

Жалко само че не мога да го форматирам с отстъпи

Отговор
в отговор на Gnus #3

Re: Не правете това!!!

bOk сигурно е BOOL?

И двамата сте уволнени

Вися на мекия космат хуй на времето.
Отговор
в отговор на 3мeй #4

Аре една тесличка и от мен...


bOK = (xdControlId == WIN_AREA_PB_OK ? 1 : (xdControlId == WIN_AREA_PB_NEXT ? 2 : (xdControlId == WIN_AREA_PB_PREV ? 3 : ...)));


А т'ва как се чете, а?

General Protection Fault in module 0xDEEBAA. Рестартирайте държавата!
Отговор
в отговор на Gnus #5

Re: Не правете това!!!

Опростил съм нещата.Когато сложиш малко код е една доста по-дълга последователност,наистина можеш да се объркаш за съответсвието if/else

Отговор
в отговор на 3мeй #6

Re: Не правете това!!!

Абе, да ви имам и кода...

switch() {
case :
break;
default:
}

А като е bOk, демек bool, вземете си сменете типа бе, да му се не види...
Абе, кво се занимавам

Отговор
в отговор на MaтaKocмaтa #7

Re: Не правете това!!!

Не вярвам да е bool, защото смело му се присвояват стойности 1,2,3...

Отговор
в отговор на headhunter #8

Re: Аре една тесличка и от мен...

Тук става дума за четливост, а не кой най-бързо ще се оправи със спагетите на другарчето

Отговор
в отговор на Gnus #9

Re: Не правете това!!!

принципно нямаш грижи особено на виндовския (BOOL) да присвоиш квото ти кефне.

Вися на мекия космат хуй на времето.
Отговор
в отговор на Myxa #10

Re: Не правете това!!!

Това дето low-cost индийците не ползват case, е заразно. Недей се коси ...

Отговор
в отговор на Gnus #11

Re: Не правете това!!!

Напротив, има как - ползвай {pre} {/pre} (смени {} със []).
Пример:

else if(what==wrkVisible)
if(part)
wrk->Visible=true;
else
wrk->Visible=false;
else if(what==ChangeVal)
value[part]=-200;
else if(what==ChangeValHumTemp)
{
MainForm->sush2[part].valueh=-200;
MainForm->sush2[part].valuet=-200;
}



Отговор
в отговор на MaтaKocмaтa #12

Re: Не правете това!!!

е то на ц++ския квото и различно от 0 да му присвоиш се ше стане 1

Отговор
в отговор на 3мeй #13

Не правете и това!!!


private boolean method1(byte[] param) {
logger.debug(...);
boolean result = false;

do {
if (param == null) {
logger.error(...);
break;
}
if (param.length<=0) {
logger.error(...);
break;
}

try {
System.arraycopy(...);
} catch (Exception e) {
logger.error(...);
break;
}
ByteArrayInputStream bis = new ByteArrayInputStream(...);
if (bis == null) {
logger.error(...);
break;
}

InputSource inputSource = new InputSource(bis);
if (inputSource == null) {
logger.error(...);
break;
}

try {
...
} catch (IOException ioe) {
logger.error(...);
break;
}

result = true;

} while (0+0 != 0);
logger.debug(...);
return result;
}


Отговор
в отговор на 3мeй #14

Re: Не правете това!!!

Леле дано никога не работя с теб...

Отговор
в отговор на 3мeй #15

Re: Не правете това!!!

bOK = (xdControlId == WIN_AREA_PB_OK ) + 2*(xdControlId == WIN_AREA_PB_NEXT )+ 3*(xdControlId == WIN_AREA_PB_PREV );

Отговор
в отговор на pileto #16

Re: Не правете и това!!!

FYI, Цялото ИнДизайн СДК е изградено върху този патърн
ref

Отговор
в отговор на KpyM #17

Re: Не правете и това!!!

Мерси за информацията. Това че някой някъде го е използвал не го прави добро. А и това е само един от проблемите на въпросния код.

Отговор
в отговор на KpyM #18

Re: Не правете и това!!!

ау това с do while(true) кои болен мозък го е родил?

ЕДИТ: АААААА зацепих - имали са coding стандарт да не пишат return в средата на функция. Ясно...

Редактирано от MaтaKocмaтa на

Отговор
в отговор на naki #19

Re: Не правете това!!!

Малко съм позабравил Ц-то, ама не може ли това

if(part)
wrk->Visible=true;
else
wrk->Visible=false;

да се замени с

wrk->Visible=part



Отговор
в отговор на headhunter #20

Re: Аре една тесличка и от мен...

main(v,c)char**c;{for(v[c++]="Hello, world!\n)";
(!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c))**c=!c)write(!!*c,*c,!!**c);}

Нещо като това ще дойде да е

y%4==0?y%100==0?y%400==0?true:false:true:false;
y%4!=0?false:y%100!=0?true:y%400!=0?false:true;

Или като тия два начина да се провери дали годината е високосна.

Отговор