테스트 사이트 - 개발 중인 베타 버전입니다

단순한것 같은 생각인데 왜 답이 안나오는지 모르겟네요 ㅠ 채택완료

오늘도산다 5년 전 조회 1,797

안녕하세요.

단순한것같은데 문득 해답이 떠오르지 않네요;;;

 

2개의 변수가 있습니다.

$a

$b

 

a의 변수는 1일수도 있고 아닐 수도 있습니다.

b의 변수는 1부터9 중 하나일수 있습니다.

 

이때

 

"a가 1일때 b가 2가 아니거나 3이 아닐때 "

위의 조건을 if문으로 작성해보니

 

if( $a== 1 & b != '2' || b != '3')

 

이렇게 작성해보니 정상적으로 작동하지 않더군요.

알아보니 || 비교연산자는 앞에 참이 나오면 더이상 실행하지 않는다는 말이 있더군요.

즉 b가 13456789 일때 더이상 실행되지 않아

여기에 3이 포함되어 있기때문에 3이 아닐때 라는 조건이 적용되지 않게 되죠.

 

간단한듯한데 왜... 답이 안나오는지 모르겠어요 도와주세요;;

 

 

 

 

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
ifelse
5년 전

If($a == '1' && ( $b != '2' || $b != '3')){

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

오늘도산다
5년 전
답변감사합니다.
근데 정말 정말 신기하게도 괄호로 묶어줘도 안되더라구요;;;;;
3인데 자꾸 if 안으로 들어가요;;
오늘도산다
5년 전
괄호안의 and... 다른 해석이군요!
정말 좋은정보 배워갑니다.

댓글을 작성하려면 로그인이 필요합니다.

오늘도산다

오타가 있었네요.

if( $a== 1 && b != '2' || b != '3') if( $a== 1 && (b != '2' || b != '3'))

둘다 b가 3일때 if로 들어가요.

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
ifelse
5년 전
$b != '2' && $b != '3'
|| 가 아니고 && .. 죄송합니다

댓글을 작성하려면 로그인이 필요합니다.

5년 전

if ($b < 1 || $b > 9) exit; // $b값이 1보다 작거나 9보다 크면 스톱

if ( $a == 1 && (b != '2' || b != '3'))

 

&&가 헷갈리면 그냥 and로 해도 됩니다. ||는 or

그리고 확실하지 않다고 여겨지면 연산은 괄호를 자주 활용하세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

오늘도산다
5년 전
감사합니다!!
가벼운줄 알았는데 이거 난제 인가봐요 -_-;;
괄호로 묶어도;; if로 들어가요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인