2015-01-05 2 views
0

함수 min 및 max에 전달되는 숫자 사이에 숫자를 묻는 함수를 만들려고합니다 (예 : .110). 그래도 작동하지 않는 것 같아, 내가 무엇을 놓치고/여기 잘못하고 있니?함수를 사용하여 최소 및 최대 사이의 사용자 입력 유효성 검사

function getProductChoice(min, max) { 

    do { 
     var productIndex = parseInt(prompt('Enter your product choice', '0')); 
    } while(isNaN(productIndex) || productIndex <= max || productIndex >= min); 

    getProductChoice(1,6); 
}; 
+1

'while'조건에는 * "bad"* 결과가 포함되어야합니다. 'min'과'max'에 대해서는 그렇지 않습니다. 함수 밖에서 함수 호출을 이동합니다. 지금 당신은 끝없는 재귀를 가지고 있습니다. –

답변

1

주어진 숫자가 범위를 충족시킬 때 메시지를 중단하고 싶다고 가정합니다. 그러나 현재 코드는 반대로 실행되며 productIndex이 최소값보다 크거나 작을 때 계속 실행됩니다. 조건부에서 maxmin을 전환 해보세요.

이 예제에서는 재귀가 필요하지 않으므로이 함수에서 getProductChoice() 함수 호출도 가져 왔습니다.

function getProductChoice(min, max) { 
    do { 
     var productIndex = parseInt(prompt('Enter your product choice', '0')); 
    } while(isNaN(productIndex) || productIndex <= min || productIndex >= max); 
}; 
getProductChoice(1,6); 
관련 문제