I linguaggi di programmazione sono ancora lingue e, quando si traduce il codice dall'inglese al linguaggio di programmazione X, potrebbe essere necessario modificare alcuni idiomi, riordinare parole, frasi o includere talvolta parentesi graffe impronunciabili ...
Quando vuoi un ciclo infinito, è possibile utilizzare while (true)
o i suoi equivalenti. Senza buone ragioni, nessun designer di linguaggio aggiungerà un'altra parola chiave solo per cicli infiniti.
La tua idea che do { ... }
implichi sempre una percentuale finale diwhile ...
non regge. In Ruby, do
avvia un blocco di codice e in Perl consente di utilizzare un blocco di codice a livello di espressione:
# read a whole file at once
my $file_contents = do {
local $/;
open my $fh, "<", $filename or die "Can't open $filename: $!";
<$fh>;
};
Poiché do
è sempre un'espressione, è possibile utilizzare anche vari altri modificatori di istruzioni ( if
, unless
e parole chiave con involucro speciale per valutare il blocco una volta prima di testare la condizione: while
e until
).
Perl6 è interessante qui perché rinomina lo stile C for
con la parola chiave loop
. Le varie istruzioni come l'inizializzazione sono opzionali, quindi si può scrivere:
loop {
say "hi";
}
... che è uguale a say "hi" while True
.
Usa solo while (true)
- tutti lo capiranno. for(;;)
è anche un idioma ampiamente compreso . Se stai usando una lingua con un preprocessore, potresti anche fare cose cattive come #define forever for(;;)
, ma questo riduce la manutenibilità.