Salve, mi sono imbattuto in questo codice che mi ha fatto sorgere qualche dubbio...
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;
}
}
Eseguendolo stampa 1 e 3...
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?