단순한것 같은 생각인데 왜 답이 안나오는지 모르겟네요 ㅠ
본문
안녕하세요.
단순한것같은데 문득 해답이 떠오르지 않네요;;;
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로 들어가요.
답변을 작성하시기 전에 로그인 해주세요.