繁体   English   中英

在 Javascript 中:您可以将 if/else 语句转换为开关吗?

[英]In Javascript: Can you convert a if/else statement to a switch?

我试图将 Javascript 中的工作 If/Else 语句转换为 Switch 语句。 但是由于某种原因,我无法让 Switch 语句工作。 这可能/我有什么问题/语法错误吗? 我已包含以下代码:有人可以为我澄清一下吗,谢谢。

工作 If/Else 语句:


function displayCityInfo() {
    var cd = document.getElementById("cityData").value;
    var h2 = document.getElementById("main");



    switch(cd){
      var spacing = "";
      case 1:

      for(i=0; i<cities.length; i++){
          spacing += "City of " + cities[i].city
          + ", latitude is " + cities[i].latitude + "<p>";
      }
      h2.innerHTML = "<h2>Results</h2>" + spacing;

        break;

      case 2:

      for(i=0; i<cities.length; i++){
          spacing += "City of " + cities[i].city
          + " population is " + cities[i].population + "<p>";
      }
      h2.innerHTML = "<h2>Results</h2>" + spacing;

      break;

      case 3:

      for(i=0; i<cities.length; i++){
          spacing += "City of " + cities[i].elevation
          + ", latitude is " + cities[i].elevation + "<p>";
      }
      h2.innerHTML = "<h2>Results</h2>" + spacing;

      break;

    }



}

Javascript Switch 语句不起作用:


function displayCityInfo() {
    var cd = document.getElementById("cityData").value;
    var h2 = document.getElementById("main");



    switch(cd){
      var spacing = "";
      case 1:

      for(i=0; i<cities.length; i++){
          spacing += "City of " + cities[i].city
          + ", latitude is " + cities[i].latitude + "<p>";
      }
      h2.innerHTML = "<h2>Results</h2>" + spacing;

        break;

      case 2:

      for(i=0; i<cities.length; i++){
          spacing += "City of " + cities[i].city
          + " population is " + cities[i].population + "<p>";
      }
      h2.innerHTML = "<h2>Results</h2>" + spacing;

      break;

      case 3:

      for(i=0; i<cities.length; i++){
          spacing += "City of " + cities[i].elevation
          + ", latitude is " + cities[i].elevation + "<p>";
      }
      h2.innerHTML = "<h2>Results</h2>" + spacing;

      break;

    }



}

启动 switch 后的 switch 语句,除了casedefault 这意味着你不能放var spacing = ""; 低于switch(cd){ 在开关上方声明变量。

只需使用默认值,如下所示:

switch(x){
  case 1:
    //do stuff
  break;
  default:
    //do the stuff that you would do in the else block
  break;
}

注意:我不确定你为什么要在 if/else 上使用它,但你可以添加它,比如:

  case 1:
    //do stuff
  break;
  case 2:
    //do other stuff
  break;
  default:
    //do the stuff that you would do in the else block
  break;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM