UKOnline

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.