묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
구문의 조건식에 대한 질문여...
2003.02.03 23:55
질문1)
while,if,for등등...구문의 조건문이 0이나 null 값인 경우에는 "거짓"인가요??
예를들어 질문을 드려볼께요...
--------------------------------------------
소스1)
1행 $a=3;
2행 while($a=""){
3행 실행할 내용;
4행 }
위의 소스는 2행 $a의 값이 null 이므로 거짓.
만약 2행 $a에 null값과 0값 이 아닌 다른 값을
할당하면 참이 되어 {}안의 내용을 실행,
소스2)
1행 $a=3;
2행 while(""){
3행 실행할 내용;
4행 }
위의 소스에서 while()안에 내용이 null 이므로 거짓,
만약 while("abc") 식으로 null과 0 이외의 다른문자를
입력하면 참이 되어 {}안의 내용을 실행.
소스3)
1행 $a=3;
2행 if(0){
3행 실행할 내용;
4행 }
위의 소스에서 if() 에서 ()안의 값이 0이므로 거짓.
만약 if()구문의 ()안에 0이 아닌 다른 숫자 이면
참이 되어 {}안의 내용을 실행,
--------------------------------------------
이런식으로 조건식이 0이나 null 경우 {}안의 내용들이 실행이 되지
않던데요, 저의 생각이 맞는건가요??
질문2)
그런데, 이상한 점을 하나 발견했는데요...
아래 예제를 보고 질문을 드릴께요.
--------------------------------------------
소스4)
1행 for($a=3;$a=$a-3;){
2행 실행할 내용;
3행 }
위의 소스는 $a-3=0 이 되니까 거짓,
만약 $a=4 이면, 참이 되어 {}안의 내용을 실행,
--------------------------------------------
이렇게 조건식에서 $a=$a-3 을 하여 $a에 0 값이 할당되면,
거짓이 되어 {} 안의 내용들이 실행이 되지 않고,조건식에서
$a에 0값이 아닌 다른 값이 할당되면 참이되어 {}안의 내용
들이 실행이 되더라구요.
만약, 위의 소스를 다음과 같이 코딩을 하면...
-------------------------------------------
소스5)
1행 for($a=3;$a>=3;$a--){
2행 echo $a."<br>";
3행 }
결과)
3
2
1
-1
-2
-------------------------------------------
이와 같은 결과가 나오는데요.
소스3) 에서 처럼 조건식에서 $a에 0이 할당되면, 거짓이
되어 0 이라는 값은 출력되지 않아야 하는거 아닌가요??
while,if,for등등...구문의 조건문이 0이나 null 값인 경우에는 "거짓"인가요??
예를들어 질문을 드려볼께요...
--------------------------------------------
소스1)
1행 $a=3;
2행 while($a=""){
3행 실행할 내용;
4행 }
위의 소스는 2행 $a의 값이 null 이므로 거짓.
만약 2행 $a에 null값과 0값 이 아닌 다른 값을
할당하면 참이 되어 {}안의 내용을 실행,
소스2)
1행 $a=3;
2행 while(""){
3행 실행할 내용;
4행 }
위의 소스에서 while()안에 내용이 null 이므로 거짓,
만약 while("abc") 식으로 null과 0 이외의 다른문자를
입력하면 참이 되어 {}안의 내용을 실행.
소스3)
1행 $a=3;
2행 if(0){
3행 실행할 내용;
4행 }
위의 소스에서 if() 에서 ()안의 값이 0이므로 거짓.
만약 if()구문의 ()안에 0이 아닌 다른 숫자 이면
참이 되어 {}안의 내용을 실행,
--------------------------------------------
이런식으로 조건식이 0이나 null 경우 {}안의 내용들이 실행이 되지
않던데요, 저의 생각이 맞는건가요??
질문2)
그런데, 이상한 점을 하나 발견했는데요...
아래 예제를 보고 질문을 드릴께요.
--------------------------------------------
소스4)
1행 for($a=3;$a=$a-3;){
2행 실행할 내용;
3행 }
위의 소스는 $a-3=0 이 되니까 거짓,
만약 $a=4 이면, 참이 되어 {}안의 내용을 실행,
--------------------------------------------
이렇게 조건식에서 $a=$a-3 을 하여 $a에 0 값이 할당되면,
거짓이 되어 {} 안의 내용들이 실행이 되지 않고,조건식에서
$a에 0값이 아닌 다른 값이 할당되면 참이되어 {}안의 내용
들이 실행이 되더라구요.
만약, 위의 소스를 다음과 같이 코딩을 하면...
-------------------------------------------
소스5)
1행 for($a=3;$a>=3;$a--){
2행 echo $a."<br>";
3행 }
결과)
3
2
1
-1
-2
-------------------------------------------
이와 같은 결과가 나오는데요.
소스3) 에서 처럼 조건식에서 $a에 0이 할당되면, 거짓이
되어 0 이라는 값은 출력되지 않아야 하는거 아닌가요??