Tak ty moje priklady by mely jit pouzit a rozvinout dal - a zavorky jsou prima i pokud nejsou vylozene nutne, protoze to zprehledni - stejne jako zapis na vic radku se spravnym odsazenim.
Na druhou stranu, pokud je ta podminka nejaka komplikovana, (a treba jeste na nekolika mistech) muze byt lepsi zabalit ji do funkce, pokud potrebujes porovnavat mraky hodnot, muze byt sikovne (a prehledne) je drzet v poli a projit to cyklem, pokud spolu nejak souvisi, muze byt vyhodne je nahradit vyrazem (kazdou sudou hodinu = misto porovnavani s cisly 2,4,6,... vezmu zbytek po deleni dvema)
Kód: Vybrat vše
bool podminka(int a, int b) {
if ( a !=0 ) return false; // prvni parametr musi byt nulovy, jinak podminka nejplati
if (b==4 || b==6 || b==7) return true; // tyhle hodnoty beru
// ...
return false; // kdyz jsme dosli az sem a nic nevyhovelo, vratime false
}
#define DELKA 3
int hodnoty[DELKA] = { 4,6,7 };
bool podminka2(int a, int b) {
if ( a !=0 ) return false; // prvni parametr musi byt nulovy, jinak podminka nejplati
for (int i=0; i<DELKA; i++) {
if (b == hodnoty[i] ) return true;
};
// ...
return false; // kdyz jsme dosli az sem a nic nevyhovelo, vratime false
}
// ...
if ( podminka(neco1,neco2) ) { // sada if
x=x;
};
if ( podminka2(neco1,neco2) ) { // pruchod polem
x=x;
};