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

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

QA

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

본문

안녕하세요.

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

 

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

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

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

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

 

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

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

오타가 있었네요.

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

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

1982138601_1605023486.2516.png

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 111
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT