So che un ciclo while può fare qualsiasi cosa a un ciclo for, ma può un ciclo for fare qualcosa in un ciclo while?Esempio di un ciclo While che non può essere un ciclo For
Si prega di fornire un esempio.
So che un ciclo while può fare qualsiasi cosa a un ciclo for, ma può un ciclo for fare qualcosa in un ciclo while?Esempio di un ciclo While che non può essere un ciclo For
Si prega di fornire un esempio.
Sì, facilmente.
while (cond) S;
for(;cond;) S;
Posso anche aggiungere che ciò si applica in C, C++, Java, C# e probabilmente in molti altri linguaggi che prendono in prestito pesantemente da C, ma non si applica ad es. Pascal. – Steve314
Quello che mi piace di questa risposta è che dimostra simultaneamente che si può fare, e perché è una cosa inutile da fare. –
Nei linguaggi C-like, è possibile dichiarare per i cicli di questo tipo:
for(; true;)
{
if(someCondition)
break;
}
Nelle lingue in cui for
è più rigorosa, cicli infiniti sarebbe un caso che richiede un ciclo while
.
Il while
ciclo e la classica for
ciclo sono intercambiabili:
for (initializer; loop-test; counting-expression) {
…
}
initializer
while (loop-test) {
…
counting-expression
}
Se avete un fisso vincolato e scatto e non consentire la modifica della variabile di ciclo nel corpo del ciclo, poi per cicli corrispondono alla primitiva funzioni ricorsive.
Da un punto di vista teorico questi sono più deboli dei cicli generali mentre, ad esempio, non è possibile calcolare la funzione Ackermann solo con tali cicli.
Se è possibile fornire un limite superiore per la condizione in un ciclo while per diventare vero, è possibile convertirlo in ciclo for. Ciò dimostra che, in senso pratico, non vi è alcuna differenza, dal momento che si può facilmente fornire un limite astronomicamente elevato, per esempio più lungo della vita dell'universo.
While loop
non ha la stessa flessibilità di uno for loop
e per i loop sono più leggibili rispetto ai cicli while. Vorrei dimostrare il mio punto con un esempio. Un ciclo for può avere forma come:
for(int i = 0, j = 0; i <= 10; i++, j++){
// Perform your operations here.
}
Un ciclo while non può essere utilizzato come il precedente ciclo for e oggi la maggior parte delle lingue moderne consentire a un for each loop
pure.
A mio parere, potrei essere prevenuto per favore perdonare per quello, non si dovrebbe usare while loop
finchè è possibile scrivere lo stesso codice con for loop
.
Dipende totalmente dal linguaggio di programmazione. Un vero ciclo for non può. – jpfollenius
Supponendo che una lingua con numeri interi illimitati e un "vero per-loop", come dice Smasher, e come tutti quelli che hanno citato C erroneamente - peggio, penso che siano seri -, considera il primo primo più grande di un intero dato n . So come farlo con while-loops. Puoi farlo solo con for-loops? –
Usando la frase "real for loop" costruisci una tautologia. Un "ciclo vero e proprio" è un ciclo chiuso storpio, ed è quindi meno capace, ma non hai imparato nulla dall'esercizio. – dmckee