另一个函数调用的Javascript切换语句计算以显示结果计算

我需要显示对switch语句进行的计算。

应用程序应具有两个功能:一个用于计算排名,另一个用于使用switch语句确定倾斜度作为参数来显示排名。它应该在控制台中具有“ Senior Master”。

排名系统如下。

Ranking
Rating Points
Senior master
2400 +
National master
2200–2399
Expert
2000–2199
Class A
1800–1999
Class B
1600–1799

显示功能应调用calculate函数,将玩家排名点作为参数传递给该函数。

应用程序的示例输出:

高级大师

我尝试仅使用switch语句来获取假定计算的结果。我仍然很困惑,因为我应该在第二个函数中显示计算结果。

我得到的结果似乎不正确。

这是我的代码。

(function (seniorMaster) { // Self executing function. Protects global space. 

    function calculateRanking() {

        seniorMaster = "2400 + ";

        switch (seniorMaster) {

            case ("2400 + "):

                ("Senior Master");

                break;

            case ("2200 - 2399"):

                console.log("National Master");

                break;

            case ("2000 - 2199"):

                console.log("Expert");

                break;

            case ("1800 - 1999"):

                console.log("Class A");

                break;

            case ("1600 - 1799"):

                console.log("Class B");
        }
    }

    calculateRanking(); // need another function to display the raking

})();

function display(){ // not sure if the second function is correct

    console.log("Senior Master")

}display()
mym1989 回答:另一个函数调用的Javascript切换语句计算以显示结果计算

我不会使用switch语句来打印结果,但是如果您确实需要,我会创建两个函数,如下所示:

function getRank(strRank) {
  const rank = parseInt(strRank);
    if (rank >= 2400) return "Senior Master";
    if (rank >= 2200 && rank <= 2399) return "National Master";
    if (rank >= 2000 && rank <= 2199) return "Expert";
    if (rank >= 1800 && rank <= 1999) return "Class A";
    if (rank >= 1600 && rank <= 1799) return "Class B";
    else return "No rank";
} 

function printRank(rank) {
  switch (rank) {
    case "Senior Master":
    case "National Master":
    case "Expert":
    case "Class A":
    case "Class B":
      console.log(rank);
      break;
    default:
      console.log("No matching rank");
      break;
  }
}

printRank(getRank("2400")); // => "Senior Master"
,

您的代码中有一些错误。

  1. 您不将console.log用于高级案卷

    case ("2400 + "):
      ("Senior Master"); // no console.log here.
      break;
    
  2. 您不能在calculateRanking();内使用display(),因为calculateRanking()display()的范围之外

  3. 您想在calculateRanking()内传递排名,然后首先使其类似于calculateRanking(seniorMaster),这将帮助您在calculateRanking(seniorMaster)

    中传递rank / score参数
  4. 将display()放入自执行函数中以允许其访问calculateRanking函数。

  5. 最后,代码应该像

    (function (/*seniorMaster*/) { // you can remove the seniorMaster
    // parameter if it is not intended to use once. 
    
    function calculateRanking(seniorMaster) { //pass argument with it so 
    //that it could perform action according to input
        switch (seniorMaster) {
    
            //  if you don't want to use string comparsion but interested
           // to use numeric comparison then use
            case ("2400 + "): //  case (seniorMaster >= 2400):
    
                console.log("Senior Master");
    
                break;
    
            case ("2200 - 2399"):
    
                //  case (seniorMaster >= 2200 && seniorMaster < 2400):
    
                console.log("National Master");
    
                break;
    
            case ("2000 - 2199"): //  case (seniorMaster >= 2000 && seniorMaster < 2200):
    
                console.log("Expert");
    
                break;
    
            case ("1800 - 1999"): //  case (seniorMaster >= 1800 && seniorMaster < 2000):
    
                console.log("Class A");
    
                break;
    
            case ("1600 - 1799"): //  case (seniorMaster >= 1600 && seniorMaster < 1800):
    
                console.log("Class B");
        }
    }
    
    //calculateRanking(seniorMaster); --- You should be more specific to use it here as 
    // I don't think it would be useful to call it here if you want to
    // use display() to display ranking otherwise you are free to use it.
    
    //You don't require display() but still if there is 
    //some specific purpose of it you may use it
    
    function display(){
        //call the function here
        //here you
        var seniorMaster = "2400 + "; //  if you want to go with numeric comparison use --- 
        //var seniorMaster = Number_Value; (where Number_Value is any +Integer)
        calculateRanking(seniorMaster);
    }
    
    display();
    })();
    
本文链接:https://www.f2er.com/3169302.html

大家都在问