2013-10-17 1 views
-1

"이미 답변을 얻을 수있는 질문"을 확인했지만 효과가있는 항목을 아직 찾지 못했습니다. 내 문제는 while 루프가 while 루프를 false로 평가하고 종료해야하는 숫자를 입력하고 반복하면서 while 루프를 반복하여 사용자 입력을 요청하는 간단한 while 루프입니다. 두 번째로 번호를 입력합니다. 나는 C++에 상당히 익숙하지 만, 뭔가가 내 iostream에 꽂혀 있다고 가정하고있다.while 루프가 false 인 경우 true로 루프가 실행됩니다. C++

1)이 "0"의 입력은, 그것을 참 while 루프를 평가하고 그대로 다시 표시하면 I가 분명하지 않다 1 입력 < 1.

2) 다시 상기 사용자 입력 요청 < 1, 루프가 다시 "잘못된 번호 - 숫자가 bwtween이어야합니다"라고 말합니다.

3) 다시 1을 입력하면 .... while 루프가 false로 평가되고 단계 2.

코드 :

string question = "Enter number of days rented (1-365): "; 

int getValidNumber(int num, int lowerNum, int upperNum, string question){ 

    while((num < 1) || (num > 365)) { 

      cout << endl; 
      cout << "Invalid number -- the number must be bwtween " << 
        lowerNum << " and " << upperNum << "." << endl << 
        "Please try again." << endl; 
      cout << question; 
      cin >> num;   
      } 

    return num; 
} 
+1

입력 한 후에이 코드를 단계별로 실행하고'num' 값을 관찰 해 보았습니까? – kevintodisco

+1

그게 명백하지 않다면, 초기 숫자를 읽는 방법이 여기 중요합니다. 오류 메시지에 숫자를 입력하여 오류 메시지가 무엇인지 그리고 오류가 계속 발생하는 이유를 확인할 수 있습니다. 너는 놀랄지도 모른다. – WhozCraig

+0

내 문제를 밟은 후 .... 무슨 일이 일어 났는지 알았습니다. 나는 twcie .... bobie라는 함수를 참조하고 있었다. lol – Ducksauce88

답변

1

내 코드를 다시 살펴본 후에 동일한 함수를 두 번 호출했습니다. 운영자 오류. 그럴거야 ....

cin >> rentalDays; 
// Validate user input 

getValidNumber(rentalDays, RENTAL_DAYS_MIN, RENTAL_DAYS_MAX, RENTAL_DAYS); 
rentalDays = getValidNumber(rentalDays, RENTAL_DAYS_MIN, RENTAL_DAYS_MAX, RENTAL_DAYS);