WHILE

Raga una delucidazione:

while (x>=0) {
//fai qualcosa
}

//oppure

while (x>=0) {
   do {
//fai qualcosa
}
}

quale delle due è più corretta?
oppure ho delle lacune sul while :smiley: ?
Grazie in anticipo!

La seconda è sbagliata
Il do va prima del while
E comunque serve per casi diversi dal while semplice

semplicemente...

  1. while potrebbe anche capitare di non entrare mai se arrivi con la condizione che non entra
  2. do...while almeno una volta entri, perché il test è alla fine del ciclo

ok raga, ho capito... stavo confondendo un attimo i due casi.
il primo è il semplice while (prima controllo poi esecuzione)
Il secondo è un mosto tra il primo ed il secondo, ma comunque sbagliato in un certo senso perché dopo il do va obbligatoriamente la condizione while... grazie a tutti...

Il mio criceto pensava che il "contrario" del do while fosse appunto il while do... :smiley: e non semplicemente il while

Appunto, do...while è come while, l'unica differenza è che la condizione viene testata alla fine del ciclo invece che all'inizio, e dunque almeno una volta ci entri per forza.

La cosa più bella è che ho usato spessissimo il while omettendo successivamente il do, ed ha sempre funzionato come mi aspettavo. ma non ricordo dove ho letto un codice con while e subito dopo do... forse alla fine di quel do c'era un'altra while :smiley: che ho fatto a meno di leggere...

Forse non ci stiamo capendo. I costrutti, come da manuale sono:

while (condizione) {
  // ...
}
do {
  // ...
} while (condizione);

Qualunque altra forma non è canonica e probabilmente funziona solo "per caso"!

quindi mi stai dicendo che non è annidabile?

while (condizione) {
   do {
         //fai qualcosa
         } while (condizione);
}

Questo non mi sembra sia scorretto..
anzi, probabilmente è stato proprio un pezzo di codice del genere a creare confusione nei miei ragionamenti tenuto conto del fatto che il codice comincia con un while do....
ma se lo leggo solo a metà (senza tener conto dell'ultimo while) so cacchi... :smiley:
PS: penso che ci siamo ben capiti... :wink:

Non è scorretto sintatticamente, ma il do... while interno è completamente inutile :P.

No, perché?
Se le due condizioni sono differenti non ci sarebbe nulla di strano
Non mi vengono in mente esempi d'uso, ma il nesting di while_do in un precedente while è legittimo e funzionante...

Ah beh, certo, ma con la stessa condizione, come è scritto, quello esterno è ridondante.

ovvio che è stato errore mio scrivere due volte "condizione" piuttosto che "condizione1" e "condizione2". diversamente è ridondante e concordo pienamente con te sukkopera. al momento non ricordo quale esempio specifico mi portò a questo inghippo... qui c'è un ottimo esempio di un if seguito da uno switch e un do while... ogni tanto lo vado a rileggere perché ha un senso logico molto ben pensato e strutturato... nonché mi fa da esempio su come gestire determinate situazioni...
a volte si fanno un sacco di ricerche mirate per quel che si vuole fare, soprattutto per chi non ha voglia di imparare a programmare sperando di diventare subito un sarto (taglia e cuci) spacciandosi poi per uno che sa come realizzare progetti...
io preferisco salvarmi questi sketch che aiutano a comprendere la logica dell'elaborazione dei dati, e una volta compresa quella per bene, essendo le combinazioni di utilizzo infinite, altrettante infinite possono essere le cose che si possono realizzare...

Comunque è assodato:

while (condizione) {
//do
}

do {
//what do you want
} while (condizione);

occhio ai commenti :stuck_out_tongue: