-3
class BoolArray {
boolean [] b = new boolean[3];
int count = 0;
void set(int i)
{
b[i] = true;
++count;
}
public static void main(String [] args)
{
BoolArray ba = new BoolArray();
ba.set(0);
ba.set(2);
ba.test();
}
void test()
{
if (b[0] && b[1] | b[2])
count++;
if (b[1] && b[(++count - 2)])
count += 7;
System.out.println("count = " + count);
}
}
기능하는 논리 연산자&& 이러한 모든 시나리오
if (b[0] && b[1] | b[2])
if (b[1] && b[0] || b[2])
if (b[1] && b[0] || b[2])
이유 '& &'코드로서 작동하지 않는 경우,이 블록의 내부에 도달 단락 논리?
논리 연산자가 어떤 순서로 실행되는지 설명하십시오.
* "왜 '&&'가 작동하지 않는 논리가 * * - 예상 한대로 작동 하는지를 보장 할 수 있습니다. 실제 기대치는 기대치와 다를 수 있습니다. 무슨 일이 일어나고있는 대신에 무엇을 기대합니까? – luk2302
귀하의 코드 (및 Google에서 첫 번째 결과)가 표시되면 순서는 && then ||입니다. 바로 가기는 부울 논리의 결과를 변경하지 않습니다. – NickL
코드가 기대하는 바는 무엇입니까? 귀하의 코드는 실제로 무엇을합니까? 즉 어떤 출력을 기대합니까? 그리고 어떤 출력을 얻습니까? 문제를 설명하기 위해 필요한 것보다 코드가 훨씬 복잡합니다. 코드를 [mcve]로 줄일 수 있습니까? – Dukeling