Exercice 8
Énoncé
Quelles erreurs ont été commises dans chacun des groupes d’instructions suivants :
1.
if (a else cout << "non ascendant" ;
2.
int n ;
...
switch (2*n+1)
{ case 1 : cout << "petit" ;
case n : cout << "moyen" ;
}
3.
const int LIMITE=100
int n ;
...
switch (n)
{ case LIMITE-1 : cout << "un peu moins" ;
case LIMITE : cout << "juste" ;
case LIMITE+1 : cout << "un peu plus" ;
}
1. Il manque un point-virgule à la fin de la première ligne :
if (a else cout << "non ascendant" ;
2. Les valeurs suivant le mot case doivent obligatoirement être des « expressions
constantes », c’est-à-dire des expressions calculables par le compilateur lui-même.
Ce n’est pas le cas de n.
3. Aucune erreur, les expressions telles que LIMITE-1 étant bien des expressions
constantes (ce qui n’était pas le cas en langage C).
31
Énoncé
Quelles erreurs ont été commises dans chacun des groupes d’instructions suivants :
1.
if (a else cout << "non ascendant" ;
2.
int n ;
...
switch (2*n+1)
{ case 1 : cout << "petit" ;
case n : cout << "moyen" ;
}
3.
const int LIMITE=100
int n ;
...
switch (n)
{ case LIMITE-1 : cout << "un peu moins" ;
case LIMITE : cout << "juste" ;
case LIMITE+1 : cout << "un peu plus" ;
}
1. Il manque un point-virgule à la fin de la première ligne :
if (a else cout << "non ascendant" ;
2. Les valeurs suivant le mot case doivent obligatoirement être des « expressions
constantes », c’est-à-dire des expressions calculables par le compilateur lui-même.
Ce n’est pas le cas de n.
3. Aucune erreur, les expressions telles que LIMITE-1 étant bien des expressions
constantes (ce qui n’était pas le cas en langage C).
31
