Javascript 将if-else转换为switch语句

Javascript 将if-else转换为switch语句,javascript,image,if-statement,switch-statement,photo,Javascript,Image,If Statement,Switch Statement,Photo,这是我到目前为止创建的代码,它不起作用。我只是一个初学者,我们正在创建这个“猜测你的生肖”代码,作为我们学校的工作之一 请帮助我更改代码的错误:(( 另外(如果我要求的东西太多,我很抱歉)我如何在每种情况下插入一张照片,比如每个星座都有一张照片 <html> <body> <h1> Guess your ZODIAC </h1> <script> window.confirm("HELLO"); window.confirm

这是我到目前为止创建的代码,它不起作用。我只是一个初学者,我们正在创建这个“猜测你的生肖”代码,作为我们学校的工作之一

请帮助我更改代码的错误:((

另外(如果我要求的东西太多,我很抱歉)我如何在每种情况下插入一张照片,比如每个星座都有一张照片

<html>
<body>
  <h1> Guess your ZODIAC </h1>
  <script>


window.confirm("HELLO");
window.confirm("I will try to determine your ZODIAC SIGN via this html. Cooperate with me :) ?");
window.confirm("oki, lego");

var zodiacmonth = prompt("Please insert your birthMONTH; if your birthday is on January 11, insert January");
var zodiacday = prompt("Please insert birthDAY; if your birthday is on January 11, insert 11")

switch (sign) {
   case ((zodiacmonth == "February" && zodiacday >= 19) || (zodiacmonth == "March" && zodiacday <=20)): 
   window.confirm ("Your zodiac sign is PISCES");
   break;

   case ((zodiacmonth == "March" && zodiacday >= 21) || (zodiacmonth == "April" && zodiacday <=19)):
   window.confirm ("Your zodiac sign is ARIES");
   break;

   case ((zodiacmonth == "April" && zodiacday >= 20) || (zodiacmonth == "May" && zodiacday <=20)):
      window.confirm ("Your zodiac sign is TAURUS");
      break;

   case zodiacmonth == "May" && zodiacday >= 21 || zodiacmonth == "June" && zodiacday <=20 : 
      window.confirm ("Your zodiac sign is GEMINI");
      break;

   case zodiacmonth == "June" && zodiacday >= 21 || zodiacmonth == "July" && zodiacday <=22:
      window.confirm ("Your zodiac sign is CANCER");
      break;

   case zodiacmonth == "July" && zodiacday >= 23 || zodiacmonth == "August" && zodiacday <=22 :
      window.confirm ("Your zodiac sign is LEO");
      break;

   case zodiacmonth == "August" && zodiacday >= 23 || zodiacmonth == "September" && zodiacday <=22: 
      window.confirm ("Your zodiac sign is VIRGO");
      break;

   case zodiacmonth == "September" && zodiacday >= 23 || zodiacmonth == "October" && zodiacday <=22: 
      window.confirm ("Your zodiac sign is LIBRA");
      break;

   case zodiacmonth == "October" && zodiacday >= 23 || zodiacmonth == "November" && zodiacday <=21:  
      window.confirm ("Your zodiac sign is SCORPIO");
      break;

   case zodiacmonth == "November" && zodiacday >= 22 || zodiacmonth == "December" && zodiacday <=21:  
      window.confirm ("Your zodiac sign is SAGITTARIUS");

   case  zodiacmonth == "December" && zodiacday >= 22 || zodiacmonth == "January" && zodiacday <=19: 
      window.confirm ("Your zodiac sign is CAPRICORN");
      break;

  case  zodiacmonth == "January" && zodiacday >= 20 || zodiacmonth == "February" && zodiacday <=18: 
        window.confirm ("Your zodiac sign is AQUARIUS, like mine :))");
      break;



   } 

  </script>
  </body>
</html>

猜猜你的生肖
窗口。确认(“你好”);
window.confirm(“我将尝试通过此html确定您的星座。请与我合作:)?”;
确认(“oki,乐高”);
var zodiacmount=提示(“请插入您的生日;如果您的生日是1月11日,请插入1月”);
var zodiacday=提示(“请插入生日;如果您的生日是1月11日,请插入11”)
道岔(标志){

(十二生肖月=“二月”和十二生肖日>=19)| |(十二生肖月=“三月”和十二生肖日=21)| |(十二生肖月=“四月”和十二生肖日=20)| |(十二生肖月=“五月”和十二生肖日=21 | | | |十二生肖月=“六月”和十二生肖日=21 | | | |十二生肖月=“七月”和十二生肖日=23 |生肖月=“八月”和“九月”十二生肖日=23 | | | | |十二生肖月=23 | | |十二生肖月=22 | | | | | |十二生肖月=20 | | | |十二生肖月=2 | | | | | | | | |十二生肖月=22 | | | | | | | | | | | |十二生

switch/case
块可用于检查单个变量的不同值

您的条件包括多个变量,因此这里甚至不可能使用
开关/case

也就是说,如果您能够更好地构建数据,则可以优化此代码:

var十二生肖=[
{符号:“双鱼座”,蒙塔:“二月”,蒙塔:“三月”,大雅:19,大雅:20},
{符号:“白羊座”,蒙塔:“三月”,蒙塔:“四月”,大雅:21,大雅:19},
{符号:“金牛座”,蒙塔:“四月”,蒙塔:“五月”,大雅:20,大雅:20},
//等
];
var zodiacmount=提示(“请插入您的生日;如果您的生日是1月11日,请插入1月”);
var zodiacday=提示(“请插入生日;如果您的生日是1月11日,请插入11”)
var zodiac=zodiacs.filter(函数(z){
返回十二生肖月份==z.monthA&&zodiacday>=z.dayA||

zodiacmonth==z.monthB&&zodiacday您无法与
switch…case
语句进行比较。如果
stry
switch(true){
则必须继续使用
,因为
符号
没有在任何地方声明,您认为它是什么?我建议您继续使用
()
在case语句中也一直如此,不知道为什么你会在金牛座之后停下来