Когда я запускаю простую программу, обе они ( & и && ), похоже, работают взаимозаменяемо. Может ли кто-нибудь объяснить, когда я должен использовать каждый случай?
public class Test1 {
public static void main(String [] args){
int counter = 0;
int dice1;
int dice2;
for (int loop = 0; loop <= 1000; loop++) {
dice1= (int) (Math.random()*6)+1;
dice2= (int) (Math.random()*6)+1;
if (dice1 == 6 && dice2 == 6){
counter ++;
}
}
System.out.println("Counter = " + counter);
}
}
Эта программа также работает, когда я использую & вместо &&. Так какая разница?
||
или|
в вашем коде. Не могли бы вы поделиться своим фактическим кодом, пожалуйста? - person Mureinik   schedule 29.04.2016test != null && test.equals("foo")
? Проверьте это. - person JB Nizet   schedule 29.04.2016if
оценивает только логические операции. Каждая часть if оценивается как логическое значение. Затем, если вы побитовое и логическое значение с другим логическим значением, вы получите логический результат. Таким образом, в этом случае вы получите тот же результат. Но логические вычисления могут закорачиваться, а побитовые выражения — нет. - person markbernard   schedule 29.04.2016