Javascript 将函数从if-else转换为switch语句时出错
我正在为聊天机器人创建句子,我需要用一个开关替换IF,我尝试了一些方法,但我不熟悉JavaScriptJavascript 将函数从if-else转换为switch语句时出错,javascript,Javascript,我正在为聊天机器人创建句子,我需要用一个开关替换IF,我尝试了一些方法,但我不熟悉JavaScript function chatbotResponse() { talking = true; botMessage = "Desculpe não entendi"; //the default message if (lastUserMessage === 'hi' || lastUserMessage =='hello') { const hi = [
function chatbotResponse() {
talking = true;
botMessage = "Desculpe não entendi"; //the default message
if (lastUserMessage === 'hi' || lastUserMessage =='hello') {
const hi = ['hi','howdy','hello']
botMessage = hi[Math.floor(Math.random()*(hi.length))];;
}
if (lastUserMessage === 'name') {
botMessage = 'My name is ' + botName;
}
}
我试过如下方法:
switch(lastUserMessage) {
case lastUserMessage === 'hi':
botMessage = 'My name is ' + botName;
break;
case lastUserMessage === 'hi'
botMessage = 'My name is ' + botName;
break;
}
在
情况下,您无法检查是否相等,这就是为什么您使用switch
语句,以便它自动进行检查的原因。因此,您只需要使用lastUserMessage
将得到检查的值。您还可以添加默认值
案例。如果不匹配,则执行默认代码块
const lastUserMessage=“hi”;
const botName=“Alexa”;
让我们分享信息;
开关(lastUserMessage){
案例“hi”:
botMessage=“嗨,我的名字是”+botName;
打破
案例“你好”:
botMessage=“你好,我的名字是”+botName;
打破
}
console.log(botMessage)代码>你读过这本书了吗
您不需要使用==
操作符,开关盒已经为您完成了
switch (lastUserMessage) {
case 'hello':
botMessage = 'Hello, my name is ' + botName;
break;
case 'name':
botMessage = 'My name is ' + botName;
break;
default:
botMessage = 'default message'
}
这里,开关
开始比较第一个案例变量的lastUserMessage
,即hi
。这是一个匹配,因此执行从casehi
开始,直到最近的中断
如果没有中断,则继续执行下一个案例,而不进行任何检查
const lastUserMessage=“hi”;
const botName=“Alexa”;
让我们分享信息;
开关(lastUserMessage){
案例“嗨”:
案例“你好”:
botMessage='你好,我的名字是'+botName;
打破
案例“名称”:
botMessage='我的名字是'+botName;
打破
}
console.log(botMessage)代码>这不是实现switch case语句的正确语法。您可以通过以下方式更正语法:
switch (lastUserMessage) {
case "hi":
botMessage = "My name is " + botName;
break;
}
您可以参考官方MDN文档了解有关switch case语句的更多信息: