logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [25/02/2023 11:00]
agp91 [Les opérateurs arithmétiques]
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [26/02/2023 16:37]
ubub [Introduction]
Ligne 17: Ligne 17:
   * ;-)   * ;-)
   * [[doc:​programmation:​shells:​page-man-bash-v-les-tableaux|Les tableaux]]   * [[doc:​programmation:​shells:​page-man-bash-v-les-tableaux|Les tableaux]]
-  * [[doc:​programmation:​shells:​man-bash-vi-les-caracteres-de-transformation-de-parametres|Les caractères de transformation de parametres]]+  * [[doc:​programmation:​shells:​man-bash-vi-les-caracteres-de-transformation-de-parametres|Les caractères de transformation de paramètres]]
   * [[doc:​programmation:​shells:​bash-vii-globs-etendus-regex| Bash : Variables, globs étendus, ERb, ERe]]   * [[doc:​programmation:​shells:​bash-vii-globs-etendus-regex| Bash : Variables, globs étendus, ERb, ERe]]
  
Ligne 29: Ligne 29:
  
 Les commandes **let** et **<​nowiki>​((...))</​nowiki>​** sont les seules commandes internes que bash dispose pour réaliser des opérations mathématiques.\\ ​ Les commandes **let** et **<​nowiki>​((...))</​nowiki>​** sont les seules commandes internes que bash dispose pour réaliser des opérations mathématiques.\\ ​
-A travers elles, bash est limité à opérer que sur des entiers signés (positifs ou négatifs).\\ ​+A travers elles, bash est limité à n'opérer que sur des entiers signés (positifs ou négatifs).\\ ​
 Le résultat de l'​évaluation d'une expression sera toujours un entier décimal signé. Le résultat de l'​évaluation d'une expression sera toujours un entier décimal signé.
  
-Pour réaliser des opérations avec des nombres à virgule ou plus complexes, nous devons nous tourner vers des commandes externes tel que **bc** (non installé par défaut) ou **awk**. Ou alors utiliser d'​autres langages interprétés tel que **perl**, **python**, etc (awk, perl et python sont disponibles par défaut sur les systèmes Debian).+Pour réaliser des opérations avec des nombres à virgule ou plus complexes, nous devons nous tourner vers des commandes externes tel que **bc** (non installé par défaut) ou **awk**. Ou alors utiliser d'​autres langages interprétés tel que **perl**, **python**, etc (**awk****perl** et **python** sont disponibles par défaut sur les systèmes Debian).
  
 Avec **let** et **<​nowiki>​((...))</​nowiki>​**,​ la plage numérique autorisée est : **-9223372036854775808 < 0 > 9223372036854775807** Avec **let** et **<​nowiki>​((...))</​nowiki>​**,​ la plage numérique autorisée est : **-9223372036854775808 < 0 > 9223372036854775807**
Ligne 39: Ligne 39:
  
   * **0**, si le résultat est inférieur ou supérieur à 0.   * **0**, si le résultat est inférieur ou supérieur à 0.
-  * **1**, si le résultat est égale ​à 0.+  * **1**, si le résultat est égal à 0.
  
 La commande **<​nowiki>​((...))</​nowiki>​** peut-être préfixée du caractère de remplacement **$** pour former la commande **<​nowiki>​$((...))</​nowiki>​**,​ afin d’être remplacée par l'​évaluation de l’expression qu'​elle contient. La commande **<​nowiki>​((...))</​nowiki>​** peut-être préfixée du caractère de remplacement **$** pour former la commande **<​nowiki>​$((...))</​nowiki>​**,​ afin d’être remplacée par l'​évaluation de l’expression qu'​elle contient.
Ligne 48: Ligne 48:
 Elle est délaissée depuis la version 2.0 de bash au profit de **<​nowiki>​((...))</​nowiki>​**.\\ ​ Elle est délaissée depuis la version 2.0 de bash au profit de **<​nowiki>​((...))</​nowiki>​**.\\ ​
 \\  \\ 
-Pour des raisons de rétrocompatibilités,​ elle est toujours active dans nos bash modernes.\\ ​ 
-Mais n'est plus documentée dans la page du manuel.\\ ​ 
 \\  \\ 
-Viendra ​un jour où, **$[...]** ne sera plus.+<file config Extrait de la page du manuel de bash> 
 +L'​ancien format $[expression] est obsolète et sera supprimé dans les prochaines versions de bash. 
 +</​file>​ 
 +\\   
 +Pour des raisons de rétrocompatibilité,​ elle est toujours active dans nos bash modernes.\\  
 +Mais viendra ​un jour où, **$[...]** ne sera plus.
 </​note>​ </​note>​
  
 ===== Les systèmes numériques ===== ===== Les systèmes numériques =====
  
-Les expressions numériques évaluées par **let** et **<​nowiki>​((...))</​nowiki>​** peuvent contenir des nombres de différent système ​numérique.\\ ​+Les expressions numériques évaluées par **let** et **<​nowiki>​((...))</​nowiki>​** peuvent contenir des nombres de différents systèmes ​numérique.\\ ​
    
 L'​évaluation des expression (le résultat) sera toujours retourné en entier décimal. L'​évaluation des expression (le résultat) sera toujours retourné en entier décimal.
Ligne 113: Ligne 116:
 a=42 a^2=1764 a=42 a^2=1764
 </​code>​ </​code>​
-=====Opérateurs d'​affectation arithmétique===== 
  
-^opérateurs ​                        ​^opérations ​                      +<note important>​ 
-| ''​<​nowiki>​=</nowiki> ​'' ​          ​| affectation ​arithmétique ​       ​+La division par 0 retourne une erreur.\\ 
-| ''​<​nowiki>​+=</​nowiki> ​'' ​         | incrémentation ​                 +\\ 
-| ''​<​nowiki>​-=</​nowiki> ​'' ​         | décrémentation ​                 +<code user> 
-| ''<​nowiki>​/=</​nowiki>​ '' ​         | affectation par division ​       ​+echo $((42/0)) 
-| ''<​nowiki>​+=</​nowiki>​ '' ​         | affectation par multiplication ​ | +</​code><​code>​ 
-| ''<​nowiki>​%=</​nowiki>​ '' ​         afectation du reste             |+bash: 42/0 : division par 0 (le symbole erroné est « 0 ») 
 +</​code>​ 
 +</​note>​ 
 + 
 +===== Les opérateurs ​d'​affectation ===== 
 + 
 +Les opérateurs d'​affectation,​ permettent affecter une valeur à une variable ou d'en modifier la valeur. 
 + 
 +|  Liste des opérateurs d'​affectation ​ ||| 
 + ​Opérateurs ​ ^  Désignations ​ ^  Résultats  ​
 +Opérateurs unaires ||| 
 +|  **''​++''​** //​var// ​ |  Affectation par la pré-incrémentation à 1   ​ | ​ //​var//  ​= //var// + 1 puis retourne //​var// ​ | 
 +|  //var// **''​++''​** ​  ​Affectation par la post-incrémentation à 1   ​| ​ Retourne //var//, puis //​var// ​ = //var// + 1    | 
 +|  **''​--''​** //​var// ​ |  Affectation par la pré-décrémentation à 1   ​ | ​ //​var// ​ = //var// - 1 puis retourne //​var// ​   | 
 +|  //var// **''​--''​** ​ |  Affectation par la post-décrémentation à 1   ​| ​ Retourne //var//, puis //​var// ​ = //var// - 1  | 
 +| Opérateurs binaires ||| 
 +|  //var// **''​=''​** //​expr// ​ |  Simple ​affectation ​   ​Affecte //epxr// à la variable //​var// ​   |  ​ 
 + //​var//​ **''​+=''​** //​expr//  ​ ​Affectation par l'incrémentation ​ ​ | ​ //var// = //var// + //​expr// ​
 + //​var//​ **''​-=''​** //​expr//  ​ ​Affectation par la décrémentation ​ ​ | ​ //var// = //var// - //​expr// ​ |  
 + //​var//​ **''​*=''​** //​expr// ​ |  Affectation par la multiplication ​ |  //var// = //var// * //​expr// ​ | 
 +|  //var// **''/​=''​** //​expr// ​ |  Affectation par la division ​ |  //var// = //var// / //​expr// ​ | 
 +|  //var// **''​%=''​** //​expr// ​ |  Affectation par modulo ​ |  //var// = //var// % //​expr// ​ | 
 +|  //var// **''<​nowiki>​<<=</​nowiki>''​** //​expr//  ​ Ré-affectation par le décalage\\ bit-à-bit à gauche ​ |  //var// = //var// <​nowiki><<</​nowiki>​ //​expr// ​
 + //​var//​ **''<​nowiki>​>>=</​nowiki>''​** //​expr//  ​ Ré-affectation par le décalage\\ bit-à-bit à droite ​ |  //var// = //var// <​nowiki>>></​nowiki>​ //​expr// ​  
 + //​var//​ **''​&​=''​** //​expr// ​ |  Affectation par le ET binaire ​ |  //var// = //​var// ​<​nowiki>​&</​nowiki>​ //​expr// ​ | 
 +|  //var// **''​|=''​** //​expr// ​ |  Affectation par le OU binaire ​ |  //var// = //var// <​nowiki>​|</​nowiki> ​//​expr// ​ | 
 +|  //var// **''​^=''​** //​expr//  ​ ​Affectation par le OU exclusif binaire ​  //​var//​ = //var// <​nowiki>​^</​nowiki>​ //​expr// ​ | 
 + 
 +Exemples : 
 + 
 +<code user> 
 +declare -p a 
 +let a=24 ; declare -p a 
 +((a=42)) ; echo a=$a 
 + 
 +let 'a += 42' ; echo "a+=42 -> a=$a"​ 
 +(( a /= 2 )) ; echo "​a/​=2 ​ -> a=$a"​ 
 + 
 +unset a 
 +</​code><​code>​ 
 +bash: declare: a : non trouvé 
 +declare -- a="​24"​ 
 +a=42 
 +a+=42 -> a=84 
 +a/=2  -> a=42 
 +</​code>​ 
 + 
 +<​note>​ 
 +Contrairement à la commande **declare -i**, les commandes **let** et **<​nowiki>​((..))</​nowiki>​** ne donnent pas l'​attribut numérique (**-i**) à une variable. 
 +</​note>​ 
 + 
 +<code user> 
 +declare -i b=42 
 +declare -p b 
 +echo "​Pré-incrémentation à 1  : Avant b=$b ; Pendant b=$((++b)) ; Après : b=$b"​ 
 +echo "​Post-décrémentation à 1 : Avant b=$b ; Pendant b=$((b--)) ; Après : b=$b"​ 
 + 
 +unset b 
 +</​code><​code>​ 
 +declare -i b="​42"​ 
 +Pré-incrémentation à 1  : Avant b=42 ; Pendant b=43 ; Après : b=43 
 +Post-décrémentation à 1 : Avant b=43 ; Pendant b=43 ; Après : b=42 
 +</​code>​
  
-**Voir :**+Voir aussi :
   * **[[doc:​programmation:​shells:​script-bash-variables-arguments-parametres?&#​typologie-des-variables|typologie de variables]]**   * **[[doc:​programmation:​shells:​script-bash-variables-arguments-parametres?&#​typologie-des-variables|typologie de variables]]**
   * **[[doc:​programmation:​shells:​script-bash-variables-arguments-parametres?&#​variables-numeriques-et-calculs|variables numériques et calculs]]**   * **[[doc:​programmation:​shells:​script-bash-variables-arguments-parametres?&#​variables-numeriques-et-calculs|variables numériques et calculs]]**
  
-=====Opérateurs binaires ​===== +===== L'​opérateur virgule ​=====
-Ces opérateurs s'​utilisent sur des binaires, (sur des 1 et des zéro).+
  
-^ Opérateurs ​      ^ significations ​                                            ^ +L'opérateur virgule, permet de séparer des opérations.
-''<<'' ​ | décalage d'un bit à gauche (=mutiplication par deux)       | +
-| ''>>''​ | décalage d'un bit à droite (=division par deux)            | +
-| ''&<'' ​  | "​et"​ logique ​ (ex : on a une variable=1; si on fait &1 cela fait 1 (en binaire 1 et 1 = 1)| +
-| ''​|<'' ​ | ou (inclusif) binaire ​                                     | +
-| ''​~'' ​  | non binaire ​                                               | +
-| ''​^'' ​  | XOR (ou exclusif) binaire ​                                 | +
  
-<​note>​ +|  L'opérateur virgule ​ ||| 
-Le ''&<​'' ( "​et" ​binaire), le ''​|<'' ​("​ou"​ binaire)et le ''​~''​ ("​non"​ binaire)\\ peuvent aussi être remplacés (de façon équivalente) par les opérateurs logiques que l'on a vus au sujet de la composition de commandes sur erreur ou sur réussite.+^  Opérateur ​ ^  Désignation ​ ^  Résultat ​ ^ 
 +|Opérateur ​binaire ||| 
 +|  //expr1// **'',''​** //​expr2// ​ |  Virgule ​ |  Sépare ​les opération //expr1// et //expr2// pour les réaliser à la suite |
  
-> ''&&''  ​: exécution de la commande suivante siet seulement si la précédente renvoie ​+Exemples : 
-+ 
-> ''​||'' ​ : exécution ​de la commande suivante ​si, et seulement si la précédente renvoie autre chose que +<code user> 
-+echo $(( 5+5 , 10+5 , 21+21)) 
-> ''​!'' ​  ​inverse du retour ​d'une commande, c'​est ​à dire un "non" logique +</​code><​code>​ 
-^_^+42 
 +</​code>​ 
 +Seule la dernière opération est retournée. 
 + 
 +C'est plus utile avec des affectations : 
 +<code user> 
 +echo $(( a=5+5 , b=10+5 , 21+21)) 
 +echo a=$a b=$b 
 +unset a b 
 +</​code><​code>​ 
 +42 
 +a=10 b=15 
 +</​code>​ 
 +===== Les opérateurs logiques ===== 
 + 
 +Les opérateurs logiques, réalisent des opérations sur des booléens.\\  
 +L'algèbre de boole n'​énumère que deux états : **vrai** et **faux**.\\  
 +Les commandes **let** et **<​nowiki>​((..))</​nowiki>​** suivent le standard C : 
 + 
 +  * **0** est compris comme **faux**. 
 +  * Toutes autres valeurs (positives ou négatives),​ souvent **1**, sont comprises comme **vrai**. 
 + 
 +... Dans bash, c'est le contraire (voir la note plus bas). 
 + 
 +Trois opérateurs logiques sont disponibles : 1 unaire et 2 binaires. 
 + 
 +<note important>​Les opérateurs logiques ne doivent être confondus avec les opérateurs bit-à-bit.</​note>​ 
 + 
 +|  Liste des opérateurs logiques ​ ||| 
 +^  Opérateurs ​ ^  Désignations ​ ^  Résultats ​ ^ 
 +| Opérateur unaire ||| 
 +|  **''​!(''​** //expr// **''​)''​** ​ |  Négation logique ​ | Retourne l'​inverse de //expr//\\ !(1) = 0 (NON vrai = faux)\\ !(0) = 1 (NON faux = vrai)| 
 +| Opérateurs binaires ||| 
 +|  //expr1// **''<​nowiki>​&&</​nowiki>​''​** //​expr2// ​ |  ET logique ​ | 1 <​nowiki>&&</​nowiki>​ 1 = 1 (vrai ET vrai = vrai)\\ 1 <​nowiki>&&</​nowiki>​ 0 = 0 (vrai ET faux = faux)\\ 0 <​nowiki>&&</​nowiki>​ 1 = 0 (faux ET vrai = faux)\\ 1 <​nowiki>&&</​nowiki>​ 1 = 0 (faux ET faux = faux) | 
 +|  //expr1// **''<​nowiki>​||</​nowiki>''​** //​expr2// ​ |  OU logique ​ | 1 <​nowiki>&&</​nowiki>​ 1 = 1 (vrai OU vrai = vrai)\\ 1 <​nowiki>&&</​nowiki>​ 0 = 1 (vrai OU faux = vrai)\\ 0 <​nowiki>&&</​nowiki>​ 1 = 1 (faux OU vrai = vrai)\\ 0 <​nowiki>&&</​nowiki>​ 0 = 0 (faux OU faux = faux) | 
 +| //epr////expr1//, //expr2// sont sujets aux développements||| 
 + 
 +Exemples : 
 + 
 +<code user> 
 +echo "!(0) = $((!(0)))"​ 
 +echo "​!(5+5) = $((!(5+5)))"​ 
 +echo $((!1)) 
 +</​code><​code
 +!(0) = 1 
 +!(5+5) = 0 
 +bash: !1: event not found 
 +</code> 
 + 
 +<​note>​L'opérateur de négation logique **!**) s'utilise uniquement avec des parenthèses : **!(//​expr//​)**.</​note>​ 
 + 
 +Les opérations logiques peuvent se suivre : 
 + 
 +<code user> 
 +echo $(( 1 && 1)) 
 +echo $(( 1 && 0)) 
 +echo $(( 1 && 1 && 0)) # vrai && vrai && faux, retourne faux 
 +</​code><​code>​ 
 +
 +
 +
 +</​code>​ 
 + 
 +Les opérateurs **<​nowiki>&&</​nowiki>​** et **<​nowiki>​||</​nowiki>​** n'étudient l'opérande ​de droite (//expr2//) que si cela est pertinent : 
 + 
 +<code user> 
 +a=1 
 +echo $((0 && (a=10) )) a=$a # Le second opérande (a=10) n'est pas étudié car cela n'est pas pertinent 
 + # avec 0 (faux) et l'​opérateur &&le résultat sera toujours faux. 
 + 
 +echo $((1 && (a=10) )) a=$a # Le second opérande (a=10) est étudié car cela est pertinent 
 + # avec 1 (vrai) ​et l'​opérateur &&, le résultat pourra être vrai. 
 +unset a 
 +</​code><​code>​ 
 +a=1 
 +1 a=10 
 +</code
 + 
 +<note>Nous avons placé l'affection **a=10** entre parenthèses **(a=10)**, pour la protéger contre la priorité des opérateurs.\\ 
 +\\  
 +Sinon, l'opérateur **<​nowiki>&&</​nowiki>​** étant prioritaire à l'opérateur d'affectation **=**, les opérations effectuées deviennent **<​nowiki>​0 && a</​nowiki>​**,​ puis **=10**, ce qui génère une erreur. 
 +\\  
 +<code user> 
 +echo $((1 && a=10 )) a=$a 
 +</​code><​code>​ 
 +bash0 && a=10  : tentative ​d'affectation ​à une non-variable (le symbole erroné est « =10  ») 
 +</​code>​ 
 + 
 +Voir plus bas [[doc:​programmation:​shells:​page-man-bash-iv-symboles-dans-les-calculs-mathematiques#​priorités-des-operateurs|les priorités des opérateurs]].
 </​note>​ </​note>​
 +
 +S'il n'est pas pertinent d'​étudier l'​opérande de droite et qu'il existe d'​autres opérateurs,​ alors les opérations se poursuivent.
 +
 +<code user>
 +a=0
 +echo $((a && (a=10) || (a=20) )) a=$a # Avec a=0 (faux) et l'​opérateur &&, il n'est pas pertinent d'​étudier le second opérande
 + # L'​opération se reporte sur l'​opérateur ||, étant pertinent, son opérande de droite est étudié.
 +a=1
 +echo $((a && (a=10) || (a=20) )) a=$a
 +unset a
 +</​code><​code>​
 +1 a=20
 +1 a=10
 +</​code>​
 +
 +<note important>​
 +Les opérations logiques retournent une valeur booléenne.\\ ​
 +\\
 +Les commandes **let** et **<​nowiki>​((..))</​nowiki>​** suivent le standard C.\\ 
 +Elles numérisent **faux** avec **0** et **vrai** avec une valeur **non nulle**.\\ ​
 +\\
 +Avec bash c'est l'​inverse,​ **faux** est une  valeur **non nulle** et **vrai** correspond à **0**.\\ ​
 +\\ 
 +Il en résulte que le code retour renvoyé est l'​inverse du résultat des opérations logiques effectuées par **let** ou **<​nowiki>​((..))</​nowiki>​**
 +<code user>
 +echo $(( !(0) ))
 +(( !(0) )); echo $?
 +</​code><​code>​
 +1
 +0
 +</​code>​
 +</​note>​
 +
 +===== Les opérateurs relationnels =====
 +
 +Les opérateurs relationnels permettent la comparaison entre deux epressions numériques.\\ ​
 +Voir [[doc:​programmation:​shells:​page-man-bash-iii-les-operateurs-de-comparaison-numerique#​comparaison-numerique-avec|Comparaison numérique avec ((...))]]
 +
 +<note important>​
 +Comme avec les opérateurs logiques, le résultat des comparaisons des opérateurs relationnels retourne une valeur booléenne.\\ ​
 +(**vrai** en cas de succès **faux** en cas d'​échec).\\ ​
 +\\
 +Le code de retour renvoyé est donc contraire au résultat des comparaisons effectuées par **let** ou **<​nowiki>​((..))</​nowiki>​**
 +<code user>
 +echo $((24<​42))
 +((24<​42));​ echo $?
 +</​code><​code>​
 +1
 +0
 +</​code>​
 +</​note>​
 +===== Les opérateurs bit-à-bit =====
 +
 +Les opérateurs bit-bit, opèrent sur des nombres binaires (une suite de 0 ou de 1).\\ 
 +Les nombres sont d'​abord convertis en binaire, l’opération est appliquée, puis le résultat est reconverti en décimal.
 +
 +<note important>​Les opérateurs bit-à-bit ne doivent pas être confondus avec les opérateurs logiques</​note>​
 +
 +|  Liste des opérateurs bit-à-bit ​ |||
 +^  Opérateurs ​ ^  Désignations ​ ^  Résultats ​ ^
 +| Opérateur unaire |||
 +| **''​~''​** //expr// | Négation binaire | Renvoie le complément à 1 de //expr//\\ (~1 -> 0 ; ~0 -> 1) |
 +| Opérateurs binaires |||
 +| //expr1// **''&''​** //expr2// | ET binaire | Renvoie le ET bit-à-bit ​ entre //expr1// et //expr2//\\ (1 ET 1 -> 1 ; 0 ET 0 -> 0 ; 1 ET 0 -> 0 ; 0 ET 1 -> 0) |
 +| //expr1// **''​|''​** //expr2// | OU binaire | Renvoie le OU bit-à-bit entre //expr1// et //expr2//\\ (1 OU 1 -> 1 ; 0 OU 0 -> 0 ; 1 OU 0 -> 1 ; 0 OU 1 -> 1) |
 +| //expr1// **''​^''​** //expr2// | OU binaire exclusif (XOR) | Renvoie le OU bit-à-bit exclusif entre //expr1// et //expr2//\\ (1 XOR 1 -> 0 ; 0 XOR 0 -> 0 ; 1 XOR 0 -> 1 ; 0 XOR 1 -> 1) |
 +| //expr1// **''<​nowiki><<</​nowiki>''​** //expr2//| Décalage binaire à gauche | Renvoie le décalage de //expr2// bit(s) à gauche de //expr1//\\ (//expr2// 0 ajoutés(s) à droite d'//​expr1//​) |
 +| //expr1// **''<​nowiki>>></​nowiki>''​** //expr2//| Décalage binaire à droite | Renvoie le décalage de //expr2// bit(s) à droite de //expr1//\\ (//expr2// bit(s) tronqué(s) à droite d'//​expr1//​) |
 +| //epr//, //expr1//, //expr2// sont sujets aux développements|||
 +
 +Exemples
 +<code user>
 +echo $((~42))
 +echo $((42^42))
 +echo $((42<<​2))
 +</​code><​code>​
 +-43
 +0
 +168
 +</​code>​
 +
 +Voir aussi :
 +
 +  * [[atelier:​chantier:​bash:​operations-les-nombres-binaires|Opérations sur les nombres binaires]]
 +
 +===== Opérateurs,​ priorités =====
 ===== Écriture utile pour les boucles ===== ===== Écriture utile pour les boucles =====
 ===Post-incrémentation et pré-incrémentation :=== ===Post-incrémentation et pré-incrémentation :===
Ligne 189: Ligne 422:
 <note tip> <note tip>
 En bref,​\\ ​ En bref,​\\ ​
-__**Post-incrémentation/​décrémentation**__ : Les signes d'​incrémentation (**''​++''​**) ou de décrémentation (**''<​nowiki>​--</​nowiki>''​**) sont placés **après** une valeur à incrémentée ​(+1) ou à décrémenter (-1) ; cette valeur est conservée dans "​y"​ puis elle est **incrémentée (+1)** ou **décrémentée (-1)**.\\ ​+__**Post-incrémentation/​décrémentation**__ : Les signes d'​incrémentation (**''​++''​**) ou de décrémentation (**''<​nowiki>​--</​nowiki>''​**) sont placés **après** une valeur à incrémenter ​(+1) ou à décrémenter (-1) ; cette valeur est conservée dans "​y"​ puis elle est **incrémentée (+1)** ou **décrémentée (-1)**.\\ ​
  
-__**Pré-incrémentation/​décrémentation**__ : Les signes d'​incrémentation (**''​++''​**) ou de décrémentation (**''<​nowiki>​--</​nowiki>''​**) sont placés **avant** une valeur à incrémentée ​ou à décrémenter ; cette valeur est **incrémentée (+1)** ou **décrémentée (-1)** puis elle est conservée dans "​y"​.+__**Pré-incrémentation/​décrémentation**__ : Les signes d'​incrémentation (**''​++''​**) ou de décrémentation (**''<​nowiki>​--</​nowiki>''​**) sont placés **avant** une valeur à incrémenter ​ou à décrémenter ; cette valeur est **incrémentée (+1)** ou **décrémentée (-1)** puis elle est conservée dans "​y"​.
 </​note>​ </​note>​
 =====Tuto précédent ===== =====Tuto précédent =====
doc/programmation/shells/page-man-bash-iv-symboles-dans-les-calculs-mathematiques.txt · Dernière modification: 26/04/2023 19:29 par bendia

Pied de page des forums

Propulsé par FluxBB