En programmation, la gestion des variables est essentielle pour éviter les erreurs et assurer un bon fonctionnement du code. Une question courante chez les débutants est : si je modifie une variable à l’intérieur d’un if, la valeur globale change-t-elle ? Cet article explore cette question en détail avec des explications et des exemples concrets.
Que se passe-t-il lorsqu’on modifie une variable à l’intérieur d’un if ?
Lorsqu’on modifie une variable à l’intérieur d’un bloc if, son impact sur la variable globale dépend de plusieurs facteurs : son portée (scope), la manière dont elle est déclarée, et le langage de programmation utilisé. En général, si une variable est locale, toute modification dans if ne l’affectera pas globalement. Mais si elle est globale, la modification peut être permanente.
Comprendre les variables globales et locales
Les variables en programmation sont classées en locales et globales. La compréhension de ces concepts est essentielle pour maîtriser leur comportement dans un programme.
Qu’est-ce qu’une variable locale ?
Une variable locale est définie dans une fonction ou un bloc de code et n’est accessible que dans ce contexte précis. Par exemple, en Python :

python
CopyEdit
def ma_fonction():
x = 10 # Variable locale
if True:
x = 20 # Modification de la variable locale
print(x) # Affiche 20
Ici, x est locale à ma_fonction, donc toute is modyfing a variable inside if change the global value de x dans le if reste limitée à cette fonction.
Qu’est-ce qu’une variable globale ?
Une variable globale est définie en dehors de toute fonction et est accessible partout dans le code. Par exemple :
python
CopyEdit
x = 10 # Variable globale
def ma_fonction():
if True:
global x # On indique qu’on modifie la variable globale
x = 20
ma_fonction()
print(x) # Affiche 20
Ici, l’utilisation de global permet de modifier la valeur de x à l’intérieur du if.
Comment la portée affecte-t-elle les variables ?
Le concept de portée détermine où une variable est accessible et modifiable.
- Portée locale : La variable est accessible uniquement dans une fonction ou un bloc.
- Portée globale : La variable est accessible partout dans le programme.
- Portée de bloc (dans certains langages comme JavaScript) : Les variables définies dans un bloc {} ne sont accessibles qu’à l’intérieur de ce bloc si déclarées avec let ou const.
Exemples de code : Modifier des variables dans un if
Voyons quelques scénarios concrets dans différents langages.
Exemple en Python
python
CopyEdit
x = 10
def modifier():
if True:
global x
x = 30
modifier()
print(x) # Affiche 30
Dans cet exemple, global x signifie que nous modifions la variable x définie en dehors de la fonction.
Exemple en JavaScript
javascript
CopyEdit
let x = 10;
function modifier() {
if (true) {
x = 20;
}
}
modifier();
console.log(x); // Affiche 20
Comme x est définie avec let, elle reste modifiable dans toute sa portée.
Exemple en C
c
CopyEdit
#include <stdio.h>
int x = 10; // Variable globale
void modifier() {
if (1) {
x = 40;
}
}
int main() {
modifier();
printf(« %d\n », x); // Affiche 40
return 0;
}
En C, une variable globale est modifiable dans toute la portée du programme.
Comment protéger les variables globales ?
Modifier des variables globales à l’intérieur d’un if peut causer des bugs inattendus. Voici quelques techniques pour éviter les modifications indésirables.

Utiliser des constantes pour éviter les modifications
Déclarer une variable comme constante empêche sa modification accidentelle.
En JavaScript :
javascript
CopyEdit
const x = 10;
if (true) {
x = 20; // Erreur ! Impossible de modifier une constante
}
En C :
c
CopyEdit
const int x = 10;
En Python, on utilise une convention :
python
CopyEdit
X = 10 # Majuscules indiquent une constante
Bonnes pratiques pour gérer les variables
- Utiliser des variables locales autant que possible : Cela évite les modifications globales accidentelles.
- Utiliser const pour les valeurs qui ne doivent pas changer.
- Éviter global en Python ou var en JavaScript, sauf si nécessaire.
- Passer des variables en paramètre de fonction plutôt que d’utiliser des variables globales.
Pourquoi utiliser des variables locales ?
Les variables locales réduisent les effets de bord et rendent le code plus facile à comprendre et à déboguer.
Conclusion : La valeur globale change-t-elle ou non ?
La réponse dépend de la manière dont la variable est déclarée. Si elle est locale, elle ne modifie pas la variable globale. Si elle est globale et explicitement modifiée, alors la valeur changera.
En résumé
- Modifier une variable dans un if ne modifie pas la variable globale si elle est locale.
- Une variable globale sera modifiée si on utilise global (Python), ne la redéclare pas (var en JavaScript) ou accède directement à la variable globale (C, Java).
- Utiliser de bonnes pratiques comme les constantes et les variables locales permet d’éviter des erreurs.