Don't do-while!
Ni får hjälpa mig att bena ut det här, vilken loop är trevligast och varför? (Ni som inte programmerar, vilken är rent estetiskt snyggast? I exemplen nedan gör alla samma sak, sätter en räknare i till 0, räknar upp i och gör något sålänge i är mindre än 3). Så, nu är det läsarnas val här. Vilken loop vinner?
Den jättefina while-loopen?
int i =0;
while(i < 3) {
// Gör nåt!
i++;
}
Den hyggliga for-loopen?
for(int i=0; i < 3; i++) {
// Gör nåt!
}
Eller *rys* do-while?
int i =0;
do {
// Gör nåt!
i++;
} while(i < 3);
jag skulle gå på typ:
for i in xrange(3)
# Gör något!
:)
Helt acceptabelt - trots språkval. ;) Sålänge det inte är något litet do med någonstans så är jag nöjd.
for-loopen är syntaktiskt socker runt while, och skall enligt de flesta guidelines endast användas till att uttrycka "enkla for-loopar" (likt dom du demade).
God sed i C/C++ världen är att använda while till i stort sätt alla andra loopar.
do { } while används i stort sätt inte; det är extremt sällan den special-loopen behövs. Det är bara Ada/Pascal/VHDL troll som saknar REPEAT UNTIL som använder den för att de inte vill växa upp och omfamna en modern värld härskar while(förevigt). Enda anledningen att använda do { } while är om den loopen man skall uttrycka absolut måste iterera en gång även om vilkåret är falskt.
Det korrekta är alltså att leta i labbarna och se om loopen absolut måste tas även om inlägget är falskt. Om det det inte måste tas då det är falskt så skall labbarna underkännas pga grovt missbruk av felaktig val av loop! Det kan även polisanmällas med referens till lagen om förargelseväckande beteende! :-)
får man rösta på följande konstruktion?
int i = 0;
loop:
// Gör nåt!
i++;
if (i
oj! slutklämmen bortfiltrerad av blogg.se för att slippa html-taggar. det var oväntat.
nåväl, det är väl ganska uppenbart vad för dumhet jag skrev på slutet.
Fisken, du har som vanligt alldeles rätt. Förargelseväckande beteende är vad det är! :)
Ja cos, din loop får vara med på ett hörn. Det är ju inte en sån där... onämnbar. :)