如果其他/切换组合

If else/switch Combination

本文关键字:组合 其他 如果      更新时间:2023-11-15

我不知道是否,else/switch都那么好,我不知道你是否可以将它们组合在一起,我不确定是不是这样,或者我只是刹车失误了,但我花了几个小时才找到问题,但我找不到。以下是整个代码以防万一:

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

您应该更好地优化代码。。。默认值只在开关中起作用,并且在您的代码中是不喝酒的选项。答案是你可以这样做:已选择。。。

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(a) {
// switch block
}
switch(a) {
// another switch block
}
// and so on

在我看来,你需要将所有你切换的区块合并为一个。别忘了把break放在case:块中所以你的代码看起来是这样的:

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();
switch(expression) {
    case n:
        code block
        break;
    case n:
        code block
        break;
    default:
        default code block
}