我不明白为什么我们应该包括var result = false和result = true

时间:2018-07-03 04:55:04

标签: javascript html css

我希望用户输入他们的号码,看看他们是否可以正确获得幸运数字,但是我不明白为什么我们需要输入var result=false以及 result=true

var luckyNo;

function generateNumber() {
  luckyNo = 55;
}

function match(number) {
  var result = false; /* <== here */
  // compare number with the luckyNo
  // popup box to give hints to user too low or too high or bingo
  if (number > luckyNo)
    alert("Too high");
  else if (number < luckyNo)
    alert("Too low");
  else {
    alert("Bingo!");
    // update result if matched (bingo)
    result = true; /* <== here */
  }
  return result;
}

4 个答案:

答案 0 :(得分:0)

如果未达到BINGO,则返回false,否则返回true。

这样,您可以if (match(someNumber)) { something() } 这是从函数返回所谓的boolean的相当标准的方式

function match(number) {
  var result = false;
  if (number > luckyNo) {
    alert("Too high");
  } else if (number < luckyNo) {
    alert("Too low");
  } else {
    alert("BINGO");
    result = true;
  }
  return result;
}
generateNumber();
if (match(prompt("enter number"))) {
  doSomethingWithTheWinner();
}

//or simpler

function match(number) {
  if (number > luckyNo) {
    alert("Too high")
    return false;
  }
  if (number < luckyNo) {
    alert("Too low");
    return false;
  }
  alert("BINGO");
  return true;
}
generateNumber();
if (match(prompt("enter number"))) {
  doSomethingWithTheWinner();
}

答案 1 :(得分:0)

使用三元运算符,您也可以不使用正式的if

function match(n){
  var msg=n<luckyNo?'too low'
         :n>luckyNo?'too high'
         :'Bingo';
  console.log(msg);
  return n==luckyNo;
  // or, admittedly more obscure:
  // return msg=='Bingo';
}

答案 2 :(得分:0)

这只是您的程序正在做的一个小技巧。就是说:“始终将结果设置为false,但是如果用户猜对了数字,则将结果设置为true”

这种方式比说“如果用户猜错数字,然后将结果设置为false,否则将结果设置为true”之类的效率更高。

答案 3 :(得分:-1)

实际上,您根本不需要结果变量。

function match(number) {
  if (number > luckyNo) {
    alert("Too high")
  }
  else if (number < luckyNo) {
    alert("Too low");
  }
  else {
    alert("Bingo!");
    return true;
  }
  return false;
}