Comment marche do while et for en c++
Fermé
LCD.
-
3 août 2011 à 02:45
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 4 août 2011 à 08:20
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 4 août 2011 à 08:20
A voir également:
- Comment marche do while et for en c++
- Download instagram for pc - Télécharger - Divers Communication
- Dev-c++ for windows 10 - Télécharger - Langages
- Saveaspdf.exe for office 2007 - Télécharger - Bureautique
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Idm for mac - Télécharger - Téléchargement & Transfert
5 réponses
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
3 août 2011 à 09:13
3 août 2011 à 09:13
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 :(.
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
3 août 2011 à 14:12
3 août 2011 à 14:12
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());
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
3 août 2011 à 15:08
3 août 2011 à 15:08
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
louisgautier
Messages postés
1632
Date d'inscription
lundi 27 septembre 2010
Statut
Membre
Dernière intervention
13 janvier 2017
69
3 août 2011 à 17:04
3 août 2011 à 17:04
(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.
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
Modifié par KX le 3/08/2011 à 17:11
Modifié par KX le 3/08/2011 à 17:11
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.
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
4 août 2011 à 08:20
4 août 2011 à 08:20
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;