2016-04-03 64 views
-1

我不知道是否,否則/切換所有的好,我不知道如果你可以結合他們,我不知道如果是這樣的話,或者我只是做錯了,但我花了幾個小時找到了問題,我無法找到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時,它說你沒有投入足夠的錢,當我試圖選擇一杯飲料 –

回答

0

你喜歡寫東西

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 
} 
0

爲了寫一些情況下,你不需要寫開關(一)多次。你需要做的唯一事情是在單個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

沒有工作,但無論如何感謝 –

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

你應該優化你的代碼更好的...默認只適用於開關,是在你的代碼,沒有喝的選項。答案是你可以做的是這樣的: 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); 
}