Javascript If-else/开关组合
我不知道是否,else/切换得那么好,我不知道你是否可以将它们结合起来,我不确定是这样还是我只是做错了刹车,但我花了几个小时找到了问题,但我找不到。以下是全部代码以防万一:Javascript If-else/开关组合,javascript,Javascript,我不知道是否,else/切换得那么好,我不知道你是否可以将它们结合起来,我不确定是这样还是我只是做错了刹车,但我花了几个小时找到了问题,但我找不到。以下是全部代码以防万一: const Fanta = 250,Sprite = 250,Cola = 250,Dirol = 450,Snickers = 300,Lays = 800; var a = prompt("1:Fanta = 250, 2:Sprite = 250, 3:Coca Cola = 250, 4:Dirol = 450, 5
const Fanta = 250,Sprite = 250,Cola = 250,Dirol = 450,Snickers = 300,Lays = 800;
var a = prompt("1:Fanta = 250, 2:Sprite = 250, 3:Coca Cola = 250, 4:Dirol = 450, 5:Snickers = 300, 6:Lays = 800");
function math()
{
switch(a)
{
case 1:
alert("You chose Fanta");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 250)
{
alert("You just purchased a Fanta! Take back " + (money - Fanta));
}
default:
{
alert("Error! You didn't put in enough money")
}
}
switch(a)
{
case 2:
alert("You chose Sprite");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 250)
{
alert("You just purchased a Sprite! Take back " + (money - Sprite));
}
else
{
alert("Error! You didn't put in enough money")
}
}
switch(a)
{
case 3:
alert("You chose Cola");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 250)
{
alert("You just purchased a Coca Cola! Take back " + (money - Cola));
}
else
{
alert("Error! You didn't put in enough money")
}
}
switch(a)
{
case 4:
alert("You chose Dirol");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 450)
{
alert("You just purchased a Dirol! Take back " + (money - Dirol));
}
else
{
alert("Error! You didn't put in enough money")
}
}
switch(a)
{
case 5:
alert("You chose Snickers");
var money = prompt("Put money in");
alert("You put in " + money);
if(money >= 300)
{
alert("You just purchased a Snickers! Take back " + (money - Snickers));
}
else
{
alert("Error! You didn't put in enough money")
}
}
switch(a)
{
case 6:
alert("You chose Lays");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 800)
{
alert("You just purchased a Sprite! Take back " + (money - Lays));
}
else
{
alert("Error! You didn't put in enough money")
}
}
}
math();
你写的东西
switch(a) {
// switch block
}
switch(a) {
// another switch block
}
// and so on
依我拙见,你需要把所有的开关块合并在一个块中。不要忘了在你的案例中加入break
:
块
因此,您的代码将如下所示:
switch(a) {
case x:
// case block 1
break;
case y:
// case block 2
break;
// other cases
default:
// if no one case is matched
}
为了写入大量案例,您不需要多次写入开关(a)。您需要做的唯一一件事是在single switch()中写入所有案例,并添加break在那个案例的结尾 编写代码的正确方法是:
const Fanta = 250,Sprite = 250,Cola = 250,Dirol = 450,Snickers = 300,Lays = 800;
var a = prompt("1:Fanta = 250, 2:Sprite = 250, 3:Coca Cola = 250, 4:Dirol = 450, 5:Snickers = 300, 6:Lays = 800");
function math()
{
switch(a)
{
case 1:
alert("You chose Fanta");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 250)
{
alert("You just purchased a Fanta! Take back " + (money - Fanta));
}
break;
default:
{
alert("Error! You didn't put in enough money")
}
break;
case 2:
alert("You chose Sprite");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 250)
{
alert("You just purchased a Sprite! Take back " + (money - Sprite));
}
else
{
alert("Error! You didn't put in enough money")
}
break;
case 3:
alert("You chose Cola");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 250)
{
alert("You just purchased a Coca Cola! Take back " + (money - Cola));
}
else
{
alert("Error! You didn't put in enough money")
}
break;
case 4:
alert("You chose Dirol");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 450)
{
alert("You just purchased a Dirol! Take back " + (money - Dirol));
}
else
{
alert("Error! You didn't put in enough money")
}
break;
case 5:
alert("You chose Snickers");
var money = prompt("Put money in");
alert("You put in " + money);
if(money >= 300)
{
alert("You just purchased a Snickers! Take back " + (money - Snickers));
}
else
{
alert("Error! You didn't put in enough money")
}
break;
case 6:
alert("You chose Lays");
var money = prompt("Put money in");
alert("You put in " + money)
if(money >= 800)
{
alert("You just purchased a Sprite! Take back " + (money - Lays));
}
else
{
alert("Error! You didn't put in enough money")
}
break;
}
}
math();
你应该更好地优化你的代码。。。默认值仅在开关中起作用,并且在代码中是“禁止饮酒”选项。答案是你可以这样做: 我选择了
var enough_money=false; var diff=0; var drink="";
switch(a){
case(1):
alert(...);
if(...){
enough_money=true;
diff= money-cola;
drink= "Cola";
}
break;
case(2):
alert(...);
if(...){
enough_money=true;
diff= money-cola;
drink= "Cola";
}
break;
default:
alert("Please choose!");
}
if(enough_money){
alert(drink+ ' rest money'+diff);
}
只使用一个switch语句,然后列出所有的情况,以默认情况结束。根据我几年前读到的内容,switch语句在汇编代码中使用了所谓的“向量跳转”。它使用1个命令。但是,if/else if/else if/else if/else语句的列表使用更多的CPU命令。因此,开关比if/else语句栈更快。尽管现代CPU的时钟频率为3-4 GHz*4+核,但这在今天还是一个没有意义的问题。开关可能更容易阅读,但代码应该适当缩进,以确定是否有任何缺少的大括号或它们是否没有正确对齐。顺便说一句:这些是大括号{}。这些是括号:[]。我尝试了所有答案,没有一个有效,最近的一个是@fucedebads,但是当我输入1时,它说你没有投入足够的钱,当我试图选择一个drinkRichard时,如果你能正确格式化你的代码(缩进)并说明代码如何不起作用,这将非常有帮助(你得到了什么结果,你期望得到什么结果)。如果你发布了一个问题,然后注意到它需要进一步的工作,下面有一个链接你可以使用。
var enough_money=false; var diff=0; var drink="";
switch(a){
case(1):
alert(...);
if(...){
enough_money=true;
diff= money-cola;
drink= "Cola";
}
break;
case(2):
alert(...);
if(...){
enough_money=true;
diff= money-cola;
drink= "Cola";
}
break;
default:
alert("Please choose!");
}
if(enough_money){
alert(drink+ ' rest money'+diff);
}