如果其他/开关组合

问题描述:

我不知道是否,否则/切换所有的好,我不知道如果你可以结合他们,我不知道如果是这样的话,或者我只是做错了,但我花了几个小时找到了问题,我无法找到it.Here的整个代码以防万一:如果其他/开关组合

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(); 
+1

仅使用一个switch语句,然后列出所有的情况下,默认情况下关闭。 – connexo

+0

从我记得多年前读取的内容来看,switch语句在汇编代码中使用了所谓的“向量跳转”。它使用1个命令。但是if/else-if/else-if/else-if/else语句的列表使用更多的CPU命令。因此,开关比if/else语句的堆栈更快。尽管现代CPU的主频为3-4 GHz * 4+内核,但今天仍是一个有争议的问题。交换机可以更容易阅读,但代码应该正确缩进以确定是否有任何缺失大括号或者它们没有正确排列。顺便说一句:这些是大括号{}。这些是括号:[]。 – Clomp

+0

我试过每个答案,都没有工作,最接近的是@fucedebads,但是当我输入1时,它说你没有投入足够的钱,当我试图选择一杯饮料 –

你喜欢写东西

switch(a) { 
// switch block 
} 
switch(a) { 
// another switch block 
} 
// and so on 

依我拙见,你需要合并所有你切换块在一个。而且不要忘了把breakcase:块 所以,你的代码将看起来像这样:

switch(a) { 
    case x: 
     // case block 1 
     break; 

    case y: 
     // case block 2 
     break; 
// other cases 
    default: 
     // if no one case is matched 
} 

为了写一些情况下,你不需要写开关(一)多次。你需要做的唯一事情是在单个switch()中写入所有的case,并添加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(); 
+0

没有工作,但无论如何感谢 –

switch(expression) { 
    case n: 
     code block 
     break; 
    case n: 
     code block 
     break; 
    default: 
     default code block 
} 

你应该优化你的代码更好的...默认只适用于开关,是在你的代码,没有喝的选项。答案是你可以做的是这样的: IST选择...

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); 
}