我有一个关于在Java语言中使用IF语句和SWITCH的非常简单的问题。 我正在尝试以“月/日/年”的格式将当前日期添加到我的页面,其中“月”是一个类似“ 03/30/2015”的数字。 我已经能够使用以下代码解决此问题: http : //jsfiddle.net/mshirk/zre1y20r/

var d = new Date();
var dd = d.toDateString();
var ddd = dd.split(' '); 
ddd.shift();    
var mon = ddd[0];
var da = ddd[1];
var yr =ddd[2];
if (mon == "Jan"){monb = 1;}
if (mon == "Feb"){monb = 2;}
if (mon == "Mar"){monb = 3;}
if (mon == "Apr"){monb = 4;}
if (mon == "May"){monb = 5;}
if (mon == "Jun"){monb = 6;}
if (mon == "Jul"){monb = 7;}
if (mon == "Aug"){monb = 8;}
if (mon == "Sep"){monb = 9;}
if (mon == "Oct"){monb = 10;}
if (mon == "Nov"){monb = 11;}
if (mon == "Dec"){monb = 12;}
slashDate = monb + "/" + da + "/" + yr;
document.getElementById('titleDate').innerHTML = slashDate;

但是,我的理解是,最好在此处使用SWITCH语句。 因此,我将长的IF语句替换为SWITCH语句,如下所示: http : //jsfiddle.net/mshirk/q0mfds0t/2/

var d = new Date();
var dd = d.toDateString();
var ddd = dd.split(' '); 
ddd.shift();    
var mon = ddd[0];
var da = ddd[1];
var yr =ddd[2];
switch(mon){
    case "Jan": monb = 01;
    case "Feb": monb = 02;
    case "Mar": monb = 03;
    case "Apr": monb = 04;
    case "May": monb = 05;
    case "Jun": monb = 06;
    case "Jul": monb = 07;
    case "Aug": monb = 08;
    case "Sep": monb = 09;
    case "Oct": monb = 10;
    case "Nov": monb = 11;
    case "Dec": monb = 12;
}
slashDate = monb + "/" + da + "/" + yr;
document.getElementById('titleDate').innerHTML = slashDate;

问题在于SWITCH语句产生的日期是错误的! 谁能帮助解释为什么IF语句产生的日期正确,而SWITCH语句产生的日期却不正确? 任何帮助将非常感激! 谢谢

#1楼 票数:2 已采纳

每种情况下您需要休息一下

switch(mon){
case "Jan": monb = 01; break;
case "Feb": monb = 02; break;
case "Mar": monb = 03; break;
case "Apr": monb = 04; break;
case "May": monb = 05; break;
case "Jun": monb = 06; break;
case "Jul": monb = 07; break;
case "Aug": monb = 08; break;
case "Sep": monb = 09; break;
case "Oct": monb = 10; break;
case "Nov": monb = 11; break;
case "Dec": monb = 12; break;
} 

如果未提供break语句,则该开关将继续命中下一个情况,即使该情况不符合指定给该开关的条件。 在这种情况下,如果没有break语句,它将始终为monb返回12。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/switch#What_happens_if_I_forgot_a_break

#2楼 票数:0

您需要break关键字来跳过其他条件

  switch(mon){
    case "Jan": monb = 01;break ;
    case "Feb": monb = 02;break ;
    case "Mar": monb = 03;break ;
    ......

为什么碰巧使用break它是C语法

https://softwareengineering.stackexchange.com/questions/162574/why-do-we-have-to-use-break-in-switch

我有一些建议可以改善您的代码

 var d = new Date();
 var da = d.getDate();
 var monb = d.getMonth()+1;
 var yr = d.getFullYear();

 slashDate = monb + "/" + da + "/" + yr;

 document.getElementById('titleDate').innerHTML = slashDate; 

http://jsfiddle.net/q0mfds0t/3/

  ask by user3826864 translate from so

未解决问题?本站智能推荐:

1回复

JavaScript —在特定日期显示内容

我有这个switch语句,它根据星期几在主页上显示内容。 在案例6(星期六)中,我只需要证明每隔一个星期六有一个散打课。 我觉得我需要在switch语句的情况6中使用if语句,但是我不知道如何编写它(绝对初学者)。 谁能帮我? 我的代码如下。 谢谢! 仅情况6(下面的完整代码
2回复

Java-然后使用If和重复功能的更好方法-DateRelated

我创建了一个函数来检查日期字符串中所包含的月份,因此可以将其用于多种日期格式。 但是我正在使用很多ifs并重复.contains函数。 有更好的方法吗? 我的日期也与之相关,格式为Weekday(String),Month(String)day(int-XX),Year(Int-XXX
1回复

PHP - If 语句在假期显示特殊文本

我试图找到一种方法来根据它是哪个假期在 PHP 中生成特殊文本。 我正在尝试 if 语句和 switch,但我无法弄清楚它的逻辑。 你能告诉我怎么做吗? 目标是有两行文本: 今天是星期四。 胖星期四快乐! 如果某一天没有假期,则只应显示第一行文本。
2回复

如何在switch语句中的字符串上使用正则表达式?

我有一个if else语句来将字符串与元音和辅音匹配,这很好用。 我想用switch语句整理一下,但是使用match()不能解决问题。 我想念什么? if else //返回元音:1,辅音:3 开关//返回元音:0,辅音:0
2回复

Javascript - Rock, Paper, scissors with switch 语句? 如果不是,有什么替代方案?

我正在运行以下代码,它只打印“Draw!” 其他情况不起作用,我做错了什么? const rps = (p1, p2) => { var s = 'scissors'; var p = 'paper'; var r = 'rock'; var ans = ''; switch
4回复

是“if”或“switch”更喜欢Javascript

我正在构建一个函数,它在运行代码块之前验证用户的输入在应用程序的上下文中是否有意义。 我想知道像这样的“if ... else”语句或switch语句是否会更可靠地工作/否则是一个更好的解决方案? 我倾向于if ... else因为我只有两个结果 - 用户的输入有效或者告诉用户程序将接受什么
2回复

JavaScript中的if语句与switch语句

对于每个认为自己很了解javascript及其开关以及if语句的人来说,我都有一个有趣的案例。 这是正常的工作方式: 这是极其简化的。 使用switch语句,它像这样: 但是,当我尝试执行switch语句时,据我所知正确地替换了许多if语句,我突然似乎无法使它工作。 当然,
1回复

如何使用switch而不是多个if语句?

我想知道是否可以将多个if语句重写到switch 。 问题是switch在运行: 案件通过检查后的所有代码。 这就是case语句在第一个case之后运行所有代码的原因。 let arr = [1, 3]; if( arr.includes(1) ===