2014-10-02 2 views
0

PHP로 놀고 있습니다. 현재는 case switch 함수로 작업하고 있습니다. 최대 100 개의 난수를 생성하고 난수 출력을 기반으로 메시지를 에코합니다. PHP case switch print 메시지

내 PHP 코드 :

$number = rand(1, $limit); 



    switch($number){ 

     case "range1": 
      if($number >=1 || $number <=25){ 
       print 'You win nothihg'; 
      }else{ 
       print 'Your Score is: '.$number; 
      } 
      break; 
     case "range2": 
      if($number >25 || $number <=50){ 
       print 'You win Small Prize'; 
      }else{ 
       print 'Your Score is: '.$number; 
      } 
      break; 
     case "range3": 
      if($number >50 || $number <=75){ 
       print 'You win Medium Prize'; 
      }else{ 
       print 'Your Score is: '.$number; 
      } 
      break; 
     case "range4": 
      if($number >75 || $number <=100){ 
       print 'You win Large Prize'; 
      }else{ 
       print 'Your Score is: '.$number; 
      } 
      break; 
     default: 
      if($number <=75) { 
       print 'Keep tryintg untill you win Large'; 
      } 
    } 

나는이 메시지가 표시되지 않는 데 문제가 ..... 내가 여기에 잘못 가고 어디 잘 모릅니다 ..? 당신이 단어 range으로 $number 변수을 연결하지 않는 것처럼

+0

왜 난수를 문자열 "range1"과 비교합니까? – slugonamission

답변

3

rand 기능은,이 경우에, 당신에게 1을 당신이 2 개 인자로 설정 한 한계 사이의 숫자를 반환하고

$limit의 값이됩니다 이 값으로 반환되지 않습니다, 준수하십시오 :

:

$number = rand(1,2); 
//$number = 1 or 2 

switch($number): 
    //possible cases are case '1' and case '2' 
endswitch; 

당신이 range 후, 연결된을 사용하기를 원한다면

1

상태가 좋지 않습니다. rand에 대한 설명서를 읽으면 int 값을 반환합니다. 또한 switch의 매뉴얼을 읽습니다. 일반적으로 케이스 조건이 참이면 스위치가 케이스 블록에 입력됩니다. 귀하의 경우 "range1".. "range [n]"은 int 값과 비교하여 항상 false입니다.

switch($number){ 
case $number<=1: 
    echo "less than one"; 
    break; 
case $number<=50: 
    echo "less than 50"; 
    break; 
default: 
//do something default 
} 
0

$ 번호가 스위치 키워드 '범위'를 반환하지 않습니다하지만 정수 값을 반환합니다

내가이 같은 것을 사용합니다! If-condition as case 문을 넣고 가격을 각각 인쇄하십시오.

0

스위치에 임의의 숫자를 전달하고 문자열을 기다리는 경우, 메시지를 표시 할 수 없습니다. 그것은 기본 경우입니다.