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