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.