Creare Videogiochi - Game Developer

Versione completa: Cicli for, while e do-while: spiegazione?
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Bene, buongiorno/notte/tramonto etc etc... saltiamo tutti questi convenevoli e passiamo subito al dunque: domani ho compito e il mio prof. si spiega quasi come un libro chiuso. Potete spiegarmi i tre cicli da me citati nel titolo? (For, while e do-while).
Il ciclo for l'ho capito e più o meno anche il while ma una spiegazione anche su quelli per comprenderli meglio non sarebbe male; poi oggi il prof doveva farci fare un esercizio, vi trascrivo la consegna:

Dato un numero, fate stampare a schermo i 10 numeri interi successivi divisibili per 3.

Credo che si debba (debba?) usare un ciclo del "famoso" trio e delle if suppongo potete darmi una spiegazione anche su quello se non chiedo troppo?

Vi ricordo che il compito l'ho domani D:
Grazie in anticipo ^ ^

Edit: il linguaggio è c++
forse questo
http://www.html.it/pag/16687/i-cicli-for-while-e-do/
io non me ne intendo quindi è probabile che non sia la cosa giusta
Ah si, ho dimenticato di scrivere che la guida di html.it l'ho letta, mi ha fatto capire il for ma sugli altri ho ancora troppi dubbi.

Ps: quello è php
Ah,si quelle cose le ho fatte anche io a scuola anzi ho già fatto anche la verifica comunque con il while possiamo realizzare una forma di controllo cioè "iterazione"

es.

while (espressione condizionale)
sequenza



praticamente l'istruzione viene eseguita su questo modo;
1) viene valutata l'espressione condizionale
2) se l'espressione è falsa non viene eseguita se è vera si riparte dal punto 1

es.


while (media<6) {
printf ( "bocciato");
printf ("la media dello studente è uguale a %d",media);
}


invece per il DO-WHILE praticamente il DO significa FAI

es. 1

DO
sequenza
while (espressione condizionale)

es. 2

DO {
printf ("premi 1 per continuare :");
scanf ("%d",& valore);
printf ("n");
} while (vaolore !=1)



Capito? queste che ti ho detto sono appunti miei che ho preso dal prof mentre spiegava Big Grin
Il ciclo while
Codice:
while(condizione)
{
//qualcosa
}
il ciclo while non fa altro che data una condizione eseguire il codice tra parentesi graffe finchè la condizione non è più verificata. Se la condizione non si verifica il ciclo while non parte e viene saltato altrimenti se la condizione è vera viene eseguito il codice tra parentesi finchè la condzione non diviene falsa.
esempio
Codice:
conta=0;
numciao=0;
while(conta <4)
{
stampa ciao numciao;
conta++;
ciao++;
}
L'output sarà qualcosa del tipo "ciao 1" "ciao 2" "ciao 3".
Il nostro codice infatti arriva al ciclo while con la variabile conta minore di 4, entra nel ciclo ed esegue il codice di stampa, aumenta la variabile di conta di 1(conta ora vale 1) e il numero di ciao di 1 e ritorna in cima, vede che la variabile di conta è ancora minore di 4, stampa di nuovo e conta diventa uguale a 2 e così via finchè conta non diventa uguale a 4 uscendo dal ciclo.
la differenza con il ciclo do-while
Codice:
do{
//...
}while(condizione);
è che se la nostra condizione è falsa (prendendo il caso di prima)il ciclo viene comunque eseguito una volta. Esempio
Codice:
conta=5
do{
stampa io vengo stampato
}while(conta <4);
conta vale 5 che è maggiore di 4 e quindi la condizione è falsa il ciclo è stato comunque eseguito e quindi avremo un output del tipo "io vengo stampato"
mentre con un ciclo while normale
Codice:
conta=5
while(conta <4)
{
stampa io non vengo stampato
}
il ciclo non viene eseguito e avremo un output vuoto
Il ciclo for è un ciclo che non fa altro che ripetersi per un numero determinato di volte
Codice:
for(valore_iniziale,condizione,incremento)
{
//qualcosa
}
con il ciclo for si parte con una condizione, si esegue il codice finchè la condizione è verifica e si aumenta la variabile iniziale.
esempio
Codice:
for(int conta=1; conta<5;conta++)
{
stampa ciao mamma;
}
vediamo cosa succede, diciamo conta è uguale a 1 e quindi minore di 5 eseguiamo il nostro codice e torniamo su, aumentiamo conta di uno, ora conta vale 2 ma è sempre minore di 5 quindi eseguiamo il codice, e così via finchè conta diviene uguale a 5 e avremo la condizione falsa ed usciremo dal ciclo. Questo codice ci darà in output 4 "ciao mamma".

Per quanto riguarda il tuo esercizio l'ho risolto in c ma non dovrebbe cambiarti nulla, basta che scambi i printf e scanf con cin e cout e includi le giuste librerie
Codice:
int main()
{
    int x,conta; //variabili
    printf("scrivi un numero:\n");
    scanf("%d",&x); //input di un numero
    conta=0; //inizializzo la variabile di conta
    do
    {
        if(x%3==0) //se il resto del numero diviso 3 è uguale a zero quindi è divisibile
        {printf("%d\n",x); //stampo il numero
        conta++; //vado avanti con la numerazione
        }
        x++; //se non è divisibile proseguo per il numero sucessivo
    }while(conta<10); //controllo se ho già stampato o no i 10 numeri
    return 0;
}
Spero di essere stato abbastanza chiaro anche se sto scrivendo mentre spiego a mia madre della roba di matematica quindi è probabile che abbia fatto casino o errori xd
Se qualcosa non ti è chiaro dimmelo che provo a rispiegarlo.
Ok adesso ho capito qualcosa xd grazie a tutti, soprattutto a Lorenz, adesso provo a fare qualche esercizio per memorizzare i cicli
cerca su youtube fcamuso,e un professore che fa tutorial sulla programmazione e trovi di tutto dal c al c++ e anche c# fidati guardi le sue spiegazioni e capirai tutto Big Grin
Ok, grazie del consiglio ^ ^