Comment marche do while et for en c++
LCD.
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train d'apprendre le c++ et je suis rendu au boucle. Il en existe 3 la while la do while et la for. La while et la for j'ai compris, mais pour la do while pas du tout. Je comprend pas à quoi elle sert, pour moi c'est pareil que la while. J'apprend sur le site du zero(au cas ou on me demande d'aller voir.)
Merci d'avance.
Je suis en train d'apprendre le c++ et je suis rendu au boucle. Il en existe 3 la while la do while et la for. La while et la for j'ai compris, mais pour la do while pas du tout. Je comprend pas à quoi elle sert, pour moi c'est pareil que la while. J'apprend sur le site du zero(au cas ou on me demande d'aller voir.)
Merci d'avance.
A voir également:
- Comment marche do while et for en c++
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Instagram for pc - Télécharger - Divers Communication
- Comment ouvrir un fichier do ✓ - Forum PDF
- What you do what you say - Forum Audio
5 réponses
La différence entre while et do_while, c'est que while commence par faire un test alors que do_while commence par exécuter le bloc.
Exemple d'une fonction modulo avec les deux blocs :
si tu lui demande modulo (3,10) la première fonction retournera 3 la deuxième -7.
Exemple d'une fonction modulo avec les deux blocs :
int modulo_while(int n,int mod) { while(n>=mod) n-=mod; return n; } int modulo_dowhile(int n,int mod) { do{ n-=mod; }while(n>=mod) return n; }
si tu lui demande modulo (3,10) la première fonction retournera 3 la deuxième -7.
Merci de t'es explications, mais malheureusement je n'ai toujours pas compris. Pourtant sa semble simple, mais je dois me compliquer tout seul :(.
Le do while impose que les instructions soient effectuées au moins une fois avant que l'on teste la condition d'arrêt.
Soient instr() une fonction qui effectue une série d'instructions, et cond() une fonction qui vérifie les conditions d'arrêt, ces deux codes sont équivalents :
Soient instr() une fonction qui effectue une série d'instructions, et cond() une fonction qui vérifie les conditions d'arrêt, ces deux codes sont équivalents :
//----------- 1 ----------- instr(); while (cond()) { instr(); } //----------- 2 ----------- do { instr(); } while (cond());
autre façon de voir, while se traduit par:
tant que la condition est vrai alors...
et do while se traduit par :
fait ... tant que la condition est vrai (ou jusqu'à ce que la condition soit fausse)
tant que la condition est vrai alors...
et do while se traduit par :
fait ... tant que la condition est vrai (ou jusqu'à ce que la condition soit fausse)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
(je parle en tant que LCD.)
Le truc c'est que quand je fait "combien d'enfants avez vous" il me fait sa pour do_while :
#include <iostream>
using namespace std;
int main()
{
int nbEnfants (0);
do
{
cout << " Combien d'enfants avez vous ? " << endl;
cin >> nbEnfants;
} while (nbEnfants <20);
return 0;
}
et ca pour while :
#include <iostream>
using namespace std;
int main()
{
int nbEnfants (0);
while (nbEnfants <20)
{
cout << " Combien d'enfants avez vous ? " << endl;
cin >> nbEnfants;
}
return 0;
}
Dans les 2 cas le résultat est le même.
Le truc c'est que quand je fait "combien d'enfants avez vous" il me fait sa pour do_while :
#include <iostream>
using namespace std;
int main()
{
int nbEnfants (0);
do
{
cout << " Combien d'enfants avez vous ? " << endl;
cin >> nbEnfants;
} while (nbEnfants <20);
return 0;
}
et ca pour while :
#include <iostream>
using namespace std;
int main()
{
int nbEnfants (0);
while (nbEnfants <20)
{
cout << " Combien d'enfants avez vous ? " << endl;
cin >> nbEnfants;
}
return 0;
}
Dans les 2 cas le résultat est le même.
Et bien, si il faut avoir au moins 20 enfants pour continuer, je plains la mère ^^
Ici ça revient au même car la premier test est faux dans le while, modifies tes initialisations pour voir la différence :
Avec le do while, on aura au moins un passage dans la boucle, alors que dans le while la condition est déjà satisfaite par l'initialisation donc on ne rentre même pas dans la boucle.
Ici ça revient au même car la premier test est faux dans le while, modifies tes initialisations pour voir la différence :
int nbEnfants=50; // lol
Avec le do while, on aura au moins un passage dans la boucle, alors que dans le while la condition est déjà satisfaite par l'initialisation donc on ne rentre même pas dans la boucle.
Je dirai même plus, avec le do_while l'initialisation de nbEnfants est inutile, ce qui peut donner un avantage algorithmique si tu ne sais pas comment mettre la valeur au début.
La différence entre les deux types de boucle ne se fait sentir QUE si la condition est vérifié AVANT de faire le bloc. Je t'accorde que la différence n'est pas bien grande;
La différence entre les deux types de boucle ne se fait sentir QUE si la condition est vérifié AVANT de faire le bloc. Je t'accorde que la différence n'est pas bien grande;