[英]java script basic function validation question
我需要驗證驗證函數中的 val 我寫了下面的驗證函數但不起作用它給出了運行時錯誤
兩個函數 makeInputVerifier 和 main 函數已經存在。
function makeInputVerifier(minimum, maximum) {
// write your code here
var mini=minimum;
var maxi=maximum;
}
function verify(val){
if(val<mini)return "Input is less than minimum value";
if(val>=mini && val<=maxi)return "Input is in range";
return "Input is more than maximum value";
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const min = parseInt(readLine().trim());
const max = parseInt(readLine().trim());
const verify = makeInputVerifier(min, max);
const input = parseInt(readLine().trim());
const result = verify(input);
ws.write(`${result}\n`);
ws.end();
}
行const result = verify(input, min, max);
期待makeInputVerifier
中返回一個函數const verify = makeInputVerifier(min, max);
. 您的代碼不起作用,因為您沒有從 makeInputVerifier 函數返回驗證函數。
下面的代碼應該工作:
function makeInputVerifier(minimum, maximum) {
// write your code here
var mini=minimum;
var maxi=maximum;
return function verify(val){
if(val < mini)return "Input is less than minimum value";
if(val >= mini && val <= maxi)return "Input is in range";
return "Input is more than maximum value";
}
}
verify 函數不知道 mini 和 maxi 值,因為它們不在同一范圍內。 嘗試將值傳遞給函數,如下所示:
function makeInputVerifier(minimum, maximum) {
// write your code here
var mini=minimum;
var maxi=maximum;
}
function verify(val, mini, maxi){
if(val<mini)return "Input is less than minimum value";
if(val>=mini && val<=maxi)return "Input is in range";
return "Input is more than maximum value";
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const min = parseInt(readLine().trim());
const max = parseInt(readLine().trim());
const verify = makeInputVerifier(min, max);
const input = parseInt(readLine().trim());
const result = verify(input,min, max);
ws.write(`${result}\n`);
ws.end();
}
或者像這樣在主函數的范圍內聲明值:
function makeInputVerifier(minimum, maximum) {
// write your code here
mini=minimum;
maxi=maximum;
}
function verify(val, mini, maxi){
if(val<mini)return "Input is less than minimum value";
if(val>=mini && val<=maxi)return "Input is in range";
return "Input is more than maximum value";
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const min = parseInt(readLine().trim());
const max = parseInt(readLine().trim());
var mini = 0;
var maxi = 0;
const verify = makeInputVerifier(min, max);
const input = parseInt(readLine().trim());
const result = verify(input,min, max);
ws.write(`${result}\n`);
ws.end();
}
這應該適用於所有測試用例!
function makeInputVerifier(minimum, maximum) {
// write your code here
var mini=minimum;
var maxi=maximum;
}
function verify(val, mini, maxi){
if(val<mini)return "Input is less than minimum value";
if(val>=mini && val<=maxi)return "Input is in range";
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const min = parseInt(readLine().trim());
const max = parseInt(readLine().trim());
const verif = makeInputVerifier(min, max);
const input = parseInt(readLine().trim());
const result = verify(input,min, max);
ws.write(`${result}\n`);
ws.end();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.