Bloc de code et portée
Soit le programme Java suivant :
Cochez l'affirmation correcte :
Solution
Réponse C
Le langage Java propose une version simplifiée de l'instruction if-else
lorsque vous ne devez exécuter qu'une seule instruction dans le cas if
ou else
. Dans ce cas, vous ne devez pas spécifier un bloc de code délimité par des accolades, seule l'instruction suffit.
Mais du coup, dans l'exemple qui nous intéresse, la seule instruction qu'on a spécifiée pour le cas if
est une déclaration de variable. Étant donné les règles de portée, cette variable ne pourra être utilisée que dans le bloc if
, c'est-à-dire jamais après sa déclaration dans notre cas, puisque ce bloc n'est constitué que d'une seule instruction, à savoir la-dite déclaration.
Par conséquent, le compilateur refuse de compiler ce code et produira une erreur. Une bonne pratique à adopter est de toujours mettre des accolades pour délimiter un bloc de code, même si ce dernier n'est composé que d'une seule instruction. Si on l'avait fait, le programme Scope
aurait compilé sans problème et il aurait affiché 42
sur la sortie standard.