Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用if/else语句的函数_Javascript_String_Function_If Statement - Fatal编程技术网

Javascript 使用if/else语句的函数

Javascript 使用if/else语句的函数,javascript,string,function,if-statement,Javascript,String,Function,If Statement,我创建了一个函数,可以打印1-24之间的所有数字。如果数字可以除以3,它将打印嘶嘶声,如果可以除以5,它将打印嗡嗡声 如果开始>停止,我想添加一条错误消息。我该怎么做?我试着保持警惕,但根本没有成功 2当我以start=2和stop=24打印函数时,显示的第一个值未定义。为什么呢 通过使用.substr1,我想删除左边的第一个逗号 function fizzBuzz(start, stop) { if (start >= stop) var returnString; for(va

我创建了一个函数,可以打印1-24之间的所有数字。如果数字可以除以3,它将打印嘶嘶声,如果可以除以5,它将打印嗡嗡声

如果开始>停止,我想添加一条错误消息。我该怎么做?我试着保持警惕,但根本没有成功

2当我以start=2和stop=24打印函数时,显示的第一个值未定义。为什么呢

通过使用.substr1,我想删除左边的第一个逗号

function fizzBuzz(start, stop) {
  if (start >= stop)
 var returnString;
 for(var i= start; i <= stop; i++) {
    returnString += ",";
    if (i % 3 === 0 && i % 5 === 0)
      returnString += "FizzBuzz";
    else if (i % 3 === 0)
        returnString += "Fizz";
   else if (i % 5 === 0)
        returnString += "Buzz";
    else
        returnString += i;
}
 return returnString;
}
var result = fizzBuzz(2, 24).substr(1);

提前谢谢

对于错误消息使用

如果要向用户显示信息,则需要捕获错误

try{
    var result = fizzBuzz(72, 24).substr(1);
    alert(result);
}catch(e){
    alert(e); // alerts "start must be less than stop"
}
第二个问题是因为resultString开始时是未定义的,当您将一个字符串连接到未定义的字符串时,您会在此处得到UndefinedYourStrings字符串。将returnString定义为空字符串

 var returnString = "";

您需要在if子句中输入验证

if (start >= stop)
{
   return "start must be less than stop";
}
您需要首先用空字符串初始化returnString

var returnString = "";
问题就在这里,

if (start >= stop) 
var returnString;
这里不需要if语句,但如果需要,您可以这样做

  function fizzBuzz(start, stop) { if (start >= stop){
     var returnString;
 for(var i= start; i <= stop; i++) { returnString += ","; 
if (i % 3 === 0 && i % 5 === 0) returnString += "FizzBuzz"; 
else if (i % 3 === 0) returnString += "Fizz"; else if (i % 5 === 0) returnString += "Buzz";
 else returnString += i; }
 return returnString;
 }
    }
     var result = fizzBuzz(2, 24).substr(1);

如果要在开始>=停止时显示错误消息,可以使用警报来完成。由于returnString变量没有在任何地方声明,您第一次得到了未定义

所以试试这样。这会解决你的问题

function fizzBuzz(start, stop) {
    var returnString = '';
    if (start >= stop) {
        alert('stop must be greater than start');
        return;
    }
    for (var i = start; i <= stop; i++) {
        returnString += ",";
        if (i % 3 === 0 && i % 5 === 0) 
            returnString += "FizzBuzz";
        else if (i % 3 === 0) 
            returnString += "Fizz";
        else if (i % 5 === 0) 
            returnString += "Buzz";
        else returnString += i;
    }
    return returnString;
}
你可以这样做

function fizzBuzz(start, stop) {
  if (start >= stop){
     throw "start must be less than stop";
  }
 var returnString = "";
  ...
  ...
  ...
 return returnString;
}
var result = fizzBuzz(2, 24).substr(1);

您可以对错误使用throw语句:

if (start >= stop){
    throw "first integer must be less than 2nd integer"
}
还必须使用初始值声明returnString:

 var returnString = "";

显示的第一个值未定义,因为您是这样声明的:

if (start >= stop)
 var returnString;
请注意,您没有左括号,因此基本上只声明该变量。即使您没有声明它,但在执行以下操作时,它仍将是未定义的:

returnString+=

因为它总是以未定义的形式开始

您可以将该行移到末尾,还可以在第一个if check时添加警报,并在if start>stop时返回:


if start>=stop意味着start必须是>或=停止,您说的是start=2和stop=24,因此start0 returnString+=,首先避免前导逗号,;有几种方法可以避免前导逗号。除非在该函数的其他用途中需要前导逗号,否则最糟糕的方法是修改函数的结果。在函数中执行此操作。
if (start >= stop)
 var returnString;
function fizzBuzz(start, stop) {
    if (start >= stop) {
        alert('This is wrong');
        return;
    }


  returnString = "";
  for(var i= start; i <= stop; i++) {
    if (i % 3 === 0 && i % 5 === 0)
      returnString += "FizzBuzz";
    else if (i % 3 === 0)
        returnString += "Fizz";
   else if (i % 5 === 0)
        returnString += "Buzz";
    else
        returnString += i;

    returnString += ",";
}

 return returnString;
}
var res = fizzBuzz(2, 24);
var result = res.substring(0, res.length - 1);;
console.log(result);