[英]how to use switch statment
我是 JS 新手,我阅读了 switch 语句。 我不知道如何使用它,我有一个练习要完成。 得到了一个数字为 1-10 的数组,结果需要包含“一”、“二”、“三”之类的词。这就是我到目前为止所得到的:
function sayNum(){
let nameNumber = [1,2,3,4,5,6,7,8,9,10]
let text = '';
for(let i=0;i<nameNumber.length;i++){
switch(numbers) {
case "1":
text = "one";
break;
case "2":
text = "two";
break;
case "3":
text = "three";
break;
case "4":
text='four';
break;
case "5":
text = "five";
break;
case "6":
text = "six";
break;
case "7":
text = "seven";
break;
case "8":
text = "eight";
break;
case "9":
text = "nine";
break;
case "10":
text = "ten";
}
}
return text;
}
sayNum()
你可以这样做,例如:
function sayNum(){
let numbers = [1,2,3,4,5,6,7,8,9,10];
let result = [];
for(let i=0;i<numbers.length;i++) {
switch(numbers[i]) {
case 1:
text = "one";
break;
case 2:
text = "two";
break;
case 3:
text = "three";
break;
case 4:
text = "four";
break;
case 5:
text = "five";
break;
case 6:
text = "six";
break;
case 7:
text = "seven";
break;
case 8:
text = "eight";
break;
case 9:
text = "nine";
break;
case 10:
text = "ten";
break;
}
result.push(text);
}
return result;
}
let namedNumbers = sayNum();
console.info(namedNumbers);
这会:
console
记录结果在 switch 语句中,您将一个“表达式”传递到 switch 语句中。 表达式本身可以是字符串、数字、浮点数、布尔值等。现在,将表达式与每个 case 子句进行比较。 这是一个“严格”的比较。 这就是您的代码不起作用的原因。
首先,您传递了一个未声明的变量,“数字”作为开关表达式。 相反,您应该像这样传递nameNumber[i]
数组的ith
元素: switch(nameNumber[i]){ }
其次,在您的每个 case 子句中,您都将值与“1”、“2”等字符串进行比较。 但是 switch 表达式使用严格相等===
运算符进行比较,因此当您的 nameNumber 数组包含数字而不是字符串时,您的“case”子句也应该包含数字而不是字符串。 这意味着case 1:
而不是case "1":
。
您可以在此处阅读有关switch-case
更多信息: Switch Statement
我已经使用我上面提到的更改修复了下面的代码。 请运行下面的代码片段,看看它是如何工作的。 祝你好运!
function sayNum(){ let nameNumber = [1,2,3,4,5,6,7,8,9,10] let text = ''; for(let i=0;i<nameNumber.length;i++){ switch(nameNumber[i]) { case 1: text = "one"; break; case 2: text = "two"; break; case 3: text = "three"; break; case 4: text='four'; break; case 5: text = "five"; break; case 6: text = "six"; break; case 7: text = "seven"; break; case 8: text = "eight"; break; case 9: text = "nine"; break; case 10: text = "ten"; } console.log(text); } return text; } sayNum();
使用 if 语句,而不是使用 switch。 因为在 switch 中,可以使用 break 语句跳出循环。
let text = ''; function sayNum() { let nameNumber = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; for (let i = 0; i < nameNumber.length; i++) { if(nameNumber[i] == 1){ text += `"one",`; } if(nameNumber[i] == 2){ text += `"two",`; } if(nameNumber[i] == 3){ text += `"three",`; } if(nameNumber[i] == 4){ text += `"four",`; } if(nameNumber[i] == 5){ text += `"five",`; } if(nameNumber[i] == 6){ text += `"six",`; } if(nameNumber[i] == 7){ text += `"seven",`; } if(nameNumber[i] == 8){ text += `"eight",`; } if(nameNumber[i] == 9){ text += `"nine",`; } if(nameNumber[i] == 10){ text += `"ten"`; } } } sayNum(); console.log(text)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.