강의로 돌아가기
온유

& 대신 && 를 사용하는 이유가 무엇인가요?

int answer = 0;
if (angle >0 & angle 90 & angle < 180)
{
answer = 3;
}
else if(angle == 180)
{
answer = 4;
}
return answer;

이렇게해도 결과값은 똑같이 나오는데 다른분들 풀이를 보니 && 를 쓰시는데, 이해가 가지않습니다...

2 개의 답변
낙방여우

&은 앞의 조건식이 false가 나와도 나머지 조건식을 모두 확인하고 &&은 앞의 조건식이 false가 나오면 뒤의조건식은 확인하지 않고 넘어갑니다. 이 문제에서는 차이가 '약간 더 빠르게 결과를 반환하지 않을까' 정도이지만 어떤 상수를 변수로 나누어야 하는 경우에 &&을 사용하면 에러를 막을 수 있습니다.

예를들어 if(a!=0&&100/a==4) 같은 경우는 a가 0이어도 에러없이 동작이 되지만, if(a!=0&100/a==4) 같은 경우는 a가 0이어도 뒤의 조건까지 확인하기 때문에 0으로 나눌수는 없으므로 에러가 나게 됩니다.

  • 온유

    소중한 답변 감사합니다 :)

    온유―2023.04.21 04:39
홍현민

이미 많은 시간이 지나서 다 아시겠지만, 심심해서 아는 척하고 지나가겠습니다.
&와 &&는 사용 용도가 다릅니다. &는 비트 연산자, &&은 논리 연산자입니다.
조건문에서 true 또는 false로 제어하려면 논리 연산자를 사용해야 합니다.
두 조건 모두 참인 if문을 사용할 때는
if ( 조건1 && 조건2 )
두 조건 중 하나만 참인 if문을 사용할 때는
if ( 조건1 || 조건2 )
비트 연산자는

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.