繁体   English   中英

java脚本基本功能验证题

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM