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

switch 잘 안돼요. 채택완료

쿨하다쿨해 10년 전 조회 3,440

score field에 0을 넣거나, 아무것도 안넣었을때
결과가 "you got an A"로 나옵니다.
분명 잘못된게 없는거 같은데..
절라 간단한건데 뭐가 잘못됐는지 모르겠습니다.
도와 주세요.
당근, 0을 넣거나 아무것도 안 넣었으면 "you got failed"가 나와야 하는데.

--switch.htm--
<form action="switch.php" method="post">
<input type="text" name="score">score:<br>
<input type="submit">
</form>

--switch.php--
<?php
switch ($score){
case $score > 70:
echo "you got an A";
break;
case $score > 60:
echo "you got an B";
break;
default:
echo "you failed";
break;
}
?>

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

답변 3개

채택된 답변
+20 포인트
소스에는 문제가 없었습니다. <br />
<br />
&amp;nbsp;아래처럼 해보심이..... <br />
<br />
<br />
<br />
<br />
&lt;form action=&quot;&lt;?=$PHP_SELF?&gt;&quot; method=&quot;post&quot;&gt; <br />
score:&lt;input type=&quot;text&quot; name=&quot;score&quot;&gt;&lt;input type=&quot;submit&quot;&gt; <br />
&lt;/form&gt; <br />
<br />
&lt;? <br />
if($HTTP_POST_VARS[&quot;score&quot;] &amp;&amp; is_numeric($score)) { <br />
switch ($score){ <br />
case $score &gt; 70 : <br />
echo &quot;you got an A&quot;; <br />
break; <br />
case $score &gt; 60 : <br />
echo &quot;you got an B&quot;; <br />
break; <br />
default : <br />
echo &quot;you failed&quot;; <br />
break; <br />
} <br />
} else die(&quot;score를 삽입하십시요.&quot;); <br />
?&gt;
로그인 후 평가할 수 있습니다

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

p
10년 전
로그인 후 평가할 수 있습니다

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

10년 전

제가 보기에는 

switch ($score){ 
case $score > 70: 
echo "you got an A"; 
break; 
case $score > 60: 
echo "you got an B"; 
break; 
default: 
echo "you failed"; 
break; 
 

 

이부분이 논리적으로 좀 이상하네요

70보다 크다면 71.....

60보다 크다면 61.....70.....

 

이렇게 되는데 좀 중복되는 부분이 생기는 것 같은데요

좀 더 다르게 조건을 주시는게 좋지 않을가요??

 

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

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

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

로그인