Ilyen esetben hogyan lehet elkerülni a kódduplikációt?
Az alábbi kérdésnél merült fel bennem a dolog:
http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..
Ha megnézzük a #1-es választ, akkor a szám beolvasása kétszer szerepel, míg #2 esetében az ellenőrzés. Hogyan lehet itt elkerülni a duplikált kódot?





Javaban ciklus feltételben is adhatsz át értéket, pl.:
int i;
while((i = beolvas()) > 10) {
...
}
Ha az adott nyelv nem támogat ilyen akkor lehet egy boolean kapcsoló állítgatásával:
boolean kilép = false;
while(!kilép) {
int i = beolvas();
if(i > 10) {
...
} else {
kilép = true;
}
}
Vagy csak simán breakkel ki lehet lépni a ciklusból amikor kell (végtelen ciklus nem clean kód általában):
while(true) {
int i = beolvas();
if(i <= 10) break;
...
}





int i;
while((i = beolvas()) > 10) {
...
}
Akar lehet igy is, bar nem tudom javaban mennyire szokas.
for(int i; (i = beolvas()) > 10;) {
...
}















Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!