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à.