[英]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.