Une autre question SCJP. Je pense que la sortie est K = 7, mais la réponse du livre est "la compilation échoue". Je ne vois rien de mal avec le code.Pourquoi la compilation devrait-elle échouer pour ce code?
1. class RevQOne{
2. public static void main(String [] args) {
3. boolean i = true;
4. boolean j = false;
5. short k = 10;
6. if((k == 10) && (j = true))k--;
7. if((i = false) || (k == 9))
8. k--;
9. k--;
10. System.out.println("k=" + k);
11. }
12. }
PS: Les deux signes stupides = dans les lignes 6 et 7, et le cas avec des accolades manquantes en 7, sont intentionnelles. La question vise à tester mes connaissances sur la façon dont ces choses agissent lorsqu'elles sont mal utilisées, je suppose.
Avez-vous essayé de le compiler vous-même? (Indice, regardez votre logique booléenne en comparant "j" et "vrai") –
Asker ne les compare pas, j est assigné à true, ce qui retourne vrai – MStodd
Tous ces nombres sur le côté ('1.',' 2. ', etc.) va totalement confondre le compilateur! :-) – Ken