Signification de += en langage C/C++? [Résolu/Fermé]

Messages postés
230
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
29 décembre 2016
- - Dernière réponse : Nabla's
Messages postés
18237
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
- 16 sept. 2009 à 14:21
Bonjour,

Bonjour, bon bha comme le dit le titre, est ce quelqu'un pourrait juste m'expliquer en deux ou trois mots ce que signifie le code:
int nombreDeSecondes(int heures, int minutes, int secondes)
{
int total = 0;

total = heures * 60 * 60;
total += minutes * 60;
total += secondes;

return total;
}

Cette fonction renvois un total en seconde mais comment interprete t'on le "total += minutes" s'il vous plait?

Merci d'avance :)
Afficher la suite 
A voir également:

6 réponses

Meilleure réponse
Messages postés
6197
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1339
20
Merci
+= est une manière d'incrémenter.

Exemple:

t+=1 signifie t=t+1
donc t+=x signifie t=t+x

voila

Dire « Merci » 20

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60214 internautes nous ont dit merci ce mois-ci

Messages postés
18237
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
2771
2
Merci
+= c'est une écriture contractée...

par exemple
total += minutes * 60;
c'est total = total + minutes * 60

ca te permet d'écrire moins de choses sur une ligne... ca marche aussi avec -= (et surement avec /=, *=, %=)
comme écriture que tu utilises plus souvent, il y a le i++, ++i, i-- ou --i qui permettent d'incrémenter ou décrémenter par exemple une variable (i dans ce cas)
si le ++ est situé avant, il fait l'incrémentation puis l'instruction .. ca peut etre utile si tu fais un ++ dans uen condition
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
47
1
Merci
Bonjour, comme dans beaucoup de langage :
total += minutes * 60; 

Equivaut à :
total = total + minutes * 60; 
Messages postés
230
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
29 décembre 2016
21
1
Merci
Ha ok. Tellement simple ^^.
Merci a tous les deux :)
Messages postés
18237
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
2771
0
Merci
comme écriture condensé, que je n'avais jamais vu en cours, il y a ceci qu'on utilise pas mal au boulot (et que je déteste):

bool test;
int i;
...
test?i=1:i=2

ca équivaut à
if (test==true)i=1;else i=2;
Bonjour

ce ne serait pas plutôt i= test ? 1 : 2;
?
Darkito
Messages postés
1193
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
487 > le père -
La première version doit être correcte mais dans l'optique de condenser le code, ta version est effectivement plus adéquate.
Nabla's
Messages postés
18237
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
2771 > le père -
peut être ;) je t'avoue que je ne suis pas fan, et que généralement je met ce type de lignes quand il y en a déjà dans le code, donc je fais du copier / coller ;)

après une petite vérification, je suis tombé sur la syntaxe que tu avais dit. Je pense que je m'étais trompé plus haut
Messages postés
6197
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1339
0
Merci
On perd énormément en lisibilité du code à force de trop condensé les formules...
Perso je connaissais que ceuxlà qui sont pas encore trop mal:
c++;
c--;
--c;
++c;
c+=1;
c-=1;
c*=2; (j'ai un doute sur le dernier)


Nabla's
Messages postés
18237
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
2771 -
en effet, on peut perdre en lisibilité.
ceci dit, ca peut aussi permettre de bien simplifier le code ! dans le cas que j'ai montré au dessus, quand tu as plein de if qui font qu'une action d'atribution de valeur, tu peux gagner en lisibilité.. à partir du moment ou t'as compris el truc ;)
chez nous, ca permet de gagner quelques lignes sur nos programmes qui sont déja très volumineux !