Accueil > > > AFFECTATION D'UNE VARIABLE LORS DE LA DÉCLARATION
AFFECTATION D'UNE VARIABLE LORS DE LA DÉCLARATION
Information sur la source
Description
J'ai vu certains codes où les programmeurs veulent affecter une valeur à plusieurs variables en une seule ligne. L'affectation n'est pas correcte.
Source
- Je m explique...
-
- J ai vu, par exemple, au démarrage d un programme : A = B = C = 1
- Où A, B et C sont trois variables numériques (Integer, Long, etc...).
-
- La personne veut donc affecter la valeur 1 aux variables A, B et C.
- Mais en résultat toutes les variables seront égales à 0. Pourquoi ?
-
- Pour commencer, il faut savoir que toutes les variables numériques
- sont par défaut égales à 0 au début d un programme.
-
- La ligne A = B = C = 1 n affecte une valeur qu a la variable A, non
- pas à B, ni à C.
- Car quand vous voulez affecter une valeur à une variable, TOUTE
- EXPRESSION QUI SUIT LE PREMIER SIGNE "=" sera le calcul de la valeur.
- Donc :
-
- A = B = C = 1 nous donne A = Expression( B = C = 1 )
-
- L expression B = C = 1 est en fait une vérification, ou une
- comparaison.
- En plus clair, ça donnerait (parce qu une opération se fait
- généralement de gauche à droite avec les mêmes opérateurs) :
-
- ( B = C ) = 1
-
- Ce qu il faut aussi savoir, c est que les valeurs booléennes
- (Boolean) VRAI et FAUX (TRUE et FALSE), utilisées dans les
- comparaisons, peuvent aussi avoir une valeur numérique qui sont
- -1 pour TRUE, et 0 pour FALSE.
-
- On fait la vérification... Au démarrage du programme, A, B et C sont
- égaux à 0 comme je l ai dit au début.
-
- B = C ? --> 0 = 0 ? --> TRUE
-
- Donc on enlève "( B = C )" de l expression.
-
- ( B = C ) = 1 --> ( TRUE ) = 1
-
- Etant donné que la prochaine comparaison se fait entre une valeur
- booléenne et un chiffre, la valeur TRUE est convertie en chiffre,
- donc -1
-
- -1 = 1 ? --> FALSE
-
- FALSE est le résultat de l expression. On peut maintenant revenir à
- la ligne complète :
-
- A = B = C = 1 --> A = ( B = C ) = 1 --> A = ( 0 = 0 ) = 1
- A = TRUE = 1 --> A = ( TRUE = 1 ) --> A = ( -1 = 1 )
- A = FALSE --> A = 0
-
- On affecte donc la valeur 0 à A, et les variables B et C ne changent
- pas. Voilà.
Je m explique...
J ai vu, par exemple, au démarrage d un programme : A = B = C = 1
Où A, B et C sont trois variables numériques (Integer, Long, etc...).
La personne veut donc affecter la valeur 1 aux variables A, B et C.
Mais en résultat toutes les variables seront égales à 0. Pourquoi ?
Pour commencer, il faut savoir que toutes les variables numériques
sont par défaut égales à 0 au début d un programme.
La ligne A = B = C = 1 n affecte une valeur qu a la variable A, non
pas à B, ni à C.
Car quand vous voulez affecter une valeur à une variable, TOUTE
EXPRESSION QUI SUIT LE PREMIER SIGNE "=" sera le calcul de la valeur.
Donc :
A = B = C = 1 nous donne A = Expression( B = C = 1 )
L expression B = C = 1 est en fait une vérification, ou une
comparaison.
En plus clair, ça donnerait (parce qu une opération se fait
généralement de gauche à droite avec les mêmes opérateurs) :
( B = C ) = 1
Ce qu il faut aussi savoir, c est que les valeurs booléennes
(Boolean) VRAI et FAUX (TRUE et FALSE), utilisées dans les
comparaisons, peuvent aussi avoir une valeur numérique qui sont
-1 pour TRUE, et 0 pour FALSE.
On fait la vérification... Au démarrage du programme, A, B et C sont
égaux à 0 comme je l ai dit au début.
B = C ? --> 0 = 0 ? --> TRUE
Donc on enlève "( B = C )" de l expression.
( B = C ) = 1 --> ( TRUE ) = 1
Etant donné que la prochaine comparaison se fait entre une valeur
booléenne et un chiffre, la valeur TRUE est convertie en chiffre,
donc -1
-1 = 1 ? --> FALSE
FALSE est le résultat de l expression. On peut maintenant revenir à
la ligne complète :
A = B = C = 1 --> A = ( B = C ) = 1 --> A = ( 0 = 0 ) = 1
A = TRUE = 1 --> A = ( TRUE = 1 ) --> A = ( -1 = 1 )
A = FALSE --> A = 0
On affecte donc la valeur 0 à A, et les variables B et C ne changent
pas. Voilà.
Conclusion
Je sais pas si j'ai été clair pour ceux qui ne connaiss(ai)ent pas ça. Dans le cas contraire, postez vos questions.
Historique
- 05 juin 2007 17:29:45 :
- Arrangement du texte.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Déclaration de variable : HELP !!!!!!!!!!!!!! [ par Duke76 ]
Salut , Mon probleme est simple :Comment déclarer des variables qui seront utilisables dans TOUS les modules , TOUTES les feuilles , TOUTES les procéd
lecture et decomposition de données depuis un fichier sequentiel [ par happex ]
Bonjour, cela fait quelques temps que je galère sur un programme simple dans le principe et ça m'énerve. Voici donc mon problème, je voudrais lire un
Déclaration de variable [ par JeanFrancis68 ]
Bonjour à tous...Y'a t-il possibilité de déclarer des variables de manières conditionnelles??? Ex : Si X = 1 alors déclaration d'une chaine
Déclaration de variable [ par pierre4064 ]
C'est surement une question bète mais je n'arrive pas a trouver comment déclarer une variable de manière a ce qu'elle soit accessible depuis d'autres
affectation d'un champs de valeurs [ par damd ]
salut a tousj'aurai aime savoir comment affecter a une variable (texte, constant) un champs de valeur, pour dire que cette variable peut prendre soit
déclaration de type tableau de tableaux... [ par mahana ]
Est-il possible de créer sous visual basic 6.0 un type de variable taableau contenant lui-même des tableaux..ex: type1 = tableau de 15 élémentset type
déclaration de variable [ par alfarabi ]
alfacomment faire en sorte qu'une variable soit prise en compte dans plusieurs MDIchildmerci
Déclaration de Variable [ par scoubi7 ]
Bonjour,J'ai un module appellant un UserForm, qui quand on clic ou sur :-un bouton A se unload et poursuit le 1er module,-un bouton B se unload et act
déclaration d une variable de type Form1.CurrentY = 7080 [ par Teclis01 ]
Form1.CurrentY = 7080 'on chan
affectation d'une date dans une variable [ par oxram ]
Bonsoir je ne comprend pas comment affecter une date dans une variable j'ai essayé de la maniere suivante mais ça ne marche pas dim dteMax&n
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|