2017-10-13 2 views
1

다음과 같이 for 루프를 작성했습니다. 어떤 이유로 루프를 처음 통과 한 후 루프가 중지됩니다. 이 경우 값 4를 보내려고하는데 checkRes 함수에서 문자열 "true"를 확인하는 if 문이 실패합니다. 그 모든 기능은 리턴 문자열입니다. 그것은 루프의 내 이해가 루프를 통해 가기 진술을 만날 때까지 계속됩니다 또는 종료됩니다. 아래에서 내가 뭘 잘못하고 있니?
For 루프가 첫 번째 반복 이후에 계속되지 않음

// assume $avaliable = 4; 
for ($i=$avaliable;10>$i;$i++) { 
    $check = checkRes($i, $people_no, $booking_date); 
     if ($check === "true") { 
      switch($i) { 
       case 0: $newResTime = "6 PM"; break; 
       case 1: $newResTime = "6:30 PM"; break; 
       case 2: $newResTime = "7 PM"; break; 
       case 3: $newResTime = "7:30 PM"; break; 
       case 4: $newResTime = "8 PM"; break; 
       case 5: $newResTime = "8:30 PM"; break; 
       case 6: $newResTime = "9 PM"; break; 
       case 7: $newResTime = "9:30 PM"; break; 
       case 8: $newResTime = "10 PM"; break; 
       case 9: $newResTime = "10:30 PM"; break; 
       case 10: $newResTime = "11 PM"; break; 
      } 
      // Replace next line with your return from the chatbot 
      echo "We're sorry, that time isn't avaliable, but a reservation at $newResTime has been made!"; 
      exit; 
     } 
    } 
+2

이'출구를 제거 할 그것은 루프로한다, 그래서',' – aldrin27

+0

'$의 check' 당신이'출구가있는'if'으로 그 위에 입력 그래서 사실이다 – GEPD

+0

이 코드는 미친 것입니다. 왜 check res 함수는 bool 만 반환합니까? 시간을 직접 돌려 보내지 않는 이유는 무엇입니까? 반복 인덱스가 다른 사람의 예약과 어떤 관련이 있습니까? – Rafael

답변

2

당신은 현재 "기본"솔루션으로 exit을 사용하고 있습니다. 그러나 프로그램의 실행을 항상 종료합니다 (그 이후로는 exit이됩니다).

대신이

switch($i) { 
    case 0: $newResTime = "6 PM"; break; 
    case 1: $newResTime = "6:30 PM"; break; 
    case 2: $newResTime = "7 PM"; break; 
    case 3: $newResTime = "7:30 PM"; break; 
    case 4: $newResTime = "8 PM"; break; 
    case 5: $newResTime = "8:30 PM"; break; 
    case 6: $newResTime = "9 PM"; break; 
    case 7: $newResTime = "9:30 PM"; break; 
    case 8: $newResTime = "10 PM"; break; 
    case 9: $newResTime = "10:30 PM"; break; 
    case 10: $newResTime = "11 PM"; break; 
    default: echo "..."; break; 
+0

$ check가 true로 평가되지 않으므로 프로그램이 switch 문을 작성하지 않기 때문에이 명령문은 exit 문으로 넘어 가지 않습니다. 그 진술에 그것을 만들었더라도, 나는 에코를 보지 않을거야. –

관련 문제