이 두 연산자는 종종 사용되며 항상 혼란스럽고 기록됩니다. . .
a () && b () : a ()를 실행 한 후 true가 반환되면 b ()가 실행되고 b의 값이 반환됩니다. A ()를 실행 한 후 거짓이 반환되면 전체 표현식은 a ()의 값을 반환하고 b ()는 실행되지 않습니다.
a () || B () : A ()를 실행 한 후 True가 반환되면 전체 표현식은 a ()의 값을 반환하고 b ()는 실행되지 않습니다. a ()를 실행 한 후 거짓이 반환되면 b ()가 실행되고 b ()의 값이 반환됩니다.
&& 우선 순위는 ||보다 높습니다
코드는 다음과 같습니다
경고 ((1 && 3 || 0) && 4); // 결과 4 ①
경고 (1 && 3 || 0 && 4); // 결과 3 ②
경고 (0 && 3 || 1 && 4); // 결과 4 ③
분석
명령문 3 : 1 && 3 반환 3 => 3 || 0 반환 3 => 3 && 4 반환 4
명령문 1 : 먼저 1 && 3 및 리턴 3을 실행 한 다음 0 && 4 및 리턴 0을 실행하고 최종적으로 결과 비교 3 || 0 및 리턴 3을 실행합니다.
문 0 : 먼저 0 && 3 및 반환 0을 실행 한 다음 1 && 4 및 리턴 4를 실행하고 최종적으로 결과 비교를 실행하고 4 및 리턴 4를 실행합니다.
참고 : 제로가 아닌 정수는 진실, 정의되지 않은, 무효 및 빈 줄은 거짓입니다.