안녕하세요.
단순한것같은데 문득 해답이 떠오르지 않네요;;;
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개 / 댓글 4개
채택된 답변
+20 포인트
If($a == '1' && ( $b != '2' || $b != '3')){
답변에 대한 댓글 2개
오늘도산다
2020-11-11 (수) 00:46:49
오타가 있었네요.
if( $a== 1 && b != '2' || b != '3')
if( $a== 1 && (b != '2' || b != '3'))
둘다 b가 3일때 if로 들어가요.

답변에 대한 댓글 1개
2020-11-11 (수) 00:42:55
if ($b < 1 || $b > 9) exit; // $b값이 1보다 작거나 9보다 크면 스톱
if ( $a == 1 && (b != '2' || b != '3'))
&&가 헷갈리면 그냥 and로 해도 됩니다. ||는 or
그리고 확실하지 않다고 여겨지면 연산은 괄호를 자주 활용하세요.
답변에 대한 댓글 1개
오늘도산다
2020-11-11 (수) 00:56:23
감사합니다!!
가벼운줄 알았는데 이거 난제 인가봐요 -_-;;
괄호로 묶어도;; if로 들어가요.
가벼운줄 알았는데 이거 난제 인가봐요 -_-;;
괄호로 묶어도;; if로 들어가요.
답변을 작성하려면 로그인이 필요합니다.
근데 정말 정말 신기하게도 괄호로 묶어줘도 안되더라구요;;;;;
3인데 자꾸 if 안으로 들어가요;;