2017-01-21 3 views
0

그래서 지금까지 배웠던 것들을 굳히기 위해 codingbat.com에 관한 몇 가지 질문을 진행하고 있습니다. 제공된 답변이 다른 몇 가지 질문이있을 것으로 예상됩니다. 내가 어떻게 문제를 해결 했는가보다. 그래서 한 가지 질문에 대해 저는 이전 질문에 대한 대답에서 본 스타일/형식을 사용하여 제대로 작동하도록했습니다. 그러나 논리에 대한 설명을 원합니다. 여기 return 문에 Java 논리 연산자

질문입니다 : 그들은 범위 30..40 포함 모두있는 경우

을 감안할 때 2 개 INT 값, true를 반환하거나,이 범위 40..50 포함 모두 있습니다. 그러나 나는 return 문 및 방법을 정확하게 OR 연산자를 두 부울 변수와 함께 작동에 expplanation 싶습니다,

public boolean in3050(int a, int b) { 
    boolean in3040 = (a >= 30 && a <= 40) && (b >= 30 && b <= 40); 
    boolean in4050 = (a >= 40 && a <= 50) && (b >= 40 && b <= 50); 

    return in3040 || in4050; 
} 

그래서이 대답했다 :

여기 내 코드입니다. 또한 변수 중 하나 앞에 AND 연산자 또는 NOT이 있으면 명령문이 어떻게 작동합니까?

감사합니다.

+4

는 return 문에있어 전적으로 관련이 있다는 사실에 해당 return ([some expression])

에 해당합니다. 그것은'부울 결과 = in3040 || in4050; 반환 결과; 그럼,'||'연산자에 대한 어떤 연구를 했습니까? https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html을 읽으셨습니까? –

+0

AND를 사용하면 a와 b가 모두 40 일 때 true를 반환합니다. 범위를 지정하지 않으면 제외됩니다. – Lucero

답변

1

Java에서 논리적 용어는 왼쪽에서 오른쪽으로 계산됩니다. 이것은 다음을 의미합니다 :

  • OR 진술 : a || b -> a가 이미 참이면 전체 항이 참이어야하고 b가 평가되지 않으며 a가 거짓이면 b가 여전히 참일 수 있습니다.이 경우 두 변수가 모두 계산됩니다.
  • 는 AND 문하십시오 & & B-> A는 이미 거짓이면, 다음 같은 논리가 적용 ㄱ 변수는
당신은 다음과 같이 조건부 작업을 다시 작성 상상할 수

을 평가 할 필요가 없습니다 :

if (in3040) { 
return true; 
} 
if (in4050) { 
return true; 
} 

& & - 오퍼레이터 모양은

if (!in3040) { 
return false; 
} 
if(!in4050) { 
return false; 
} 
return true; 
1

이 연산자는 프로그램의 다른 모든 위치와 똑같이 return 문에서 동일하게 작동합니다.

0

동등

return [some expression] 따라서, return in3040 || in4050;return (in3040 || in4050);

+0

당신은 진술과 표현을 혼란스럽게합니다. –