Salve, mi sono imbattuto in questo codice che mi ha fatto sorgere qualche dubbio...
Eseguendolo stampa 1 e 3...codice:public class TestClass { public static void main(String args[ ]) { int i = 0; boolean bool1 = true; boolean bool2 = false; boolean bool = false; bool = (bool2 & method1("1")); //1 bool = (bool2 && method1("2")); //2 bool = (bool1 | method1("3")); //3 bool = (bool1 || method1("4")); //4 } public static boolean method1(String str) { System.out.println(str); return true; } }
method1() restituisce sempre true, mentre bool vale, in sequenza, false false true true: non c'è quindi corrispondenza tra l'esito del confronto logico e l'esecuzione di method1().
Come mai l'operatore bitwise (& e |) fa stampare sempre e quello logico (&& e ||) mai?