Java 언어에서
a && b 의 경우 a가 false 인 경우 b를 평가(=실행)하지 않고 전체 수식이 false 로 평가됩니다
a || b 의 경우 a가 true 인 경우 b를 평가하지 않고 전체 수식이 true 로 평가됩니다.
이런 동작을 전문용어로 Short-circuit evaluation 라고 부릅니다.
질문하셨던 상황에서 safe 함수가 false 를 반환하게 되면 visit 배열의 내용을 읽는 부분과 arr 배열의 내용을 읽는 부분이 실행되지 않기 때문에
배열 범위가 초과 예외는 발생하지 않습니다.
jjhhyper 7년 전
아래의 조건문에서 visit배열과 arr배열이 index초과가 난다고 해도, safe함수를 통해 범위내에 있다고 판단이되면 함수가 수행이 됩는데
그러면 if(safe(c+1,d) && visit[c+1][d]==0 && arr[c+1][d]=='L') 조건문에서
(1)
1. safe함수조건판단 2. visit조건판단 3. arr조건판단 이되는건가요
(2) 조건문이기 때문에 배열이 arr[5][5]크기이지만 arr[100][100]을 조건문에 사용해도 문제없는건가요?