我如何能实现一个循环,所以我的程序不会崩溃?

问题描述 投票:0回答:3

我是一个初学者,我有此Javascript问题我的工作。我需要提示用户输入为R / R或F / F。不过,我想实现一个循环,这样的情况下,他们进入其他的东西,我的程序不会崩溃。我将如何去这样做呢?

function CalculatePayroll()
{
employeeNumber=prompt("Please enter the employee number");
employeeName=prompt("Please enter the employee's name");
employeeDepartment=prompt("Please enter the employee's department");
employeesHours=prompt("Please enter the number of hours the employee 
worked");
employeeTypeCode=prompt("Please enter the employee's type code: F/f or 
R/r");

  if(employeeTypeCode=="R"||employeeTypeCode=="r")
  {
    RegularWorkerPayroll();
    CalculateTotalPay();
    DisplayPaySlip();

  }

  else if(employeeTypeCode=="F"||employeeTypeCode=="f")
  {
    FacultyPayroll();
    CalculateTotalPay();
    DisplayPaySlip();
  }
}

我想有一个循环来实现,这样,如果他们进入类似“B”或什么的,我可以连续直到他们进入正确的汉字提示他们。我尝试了不同的时间,但我刚刚结束了一个无限循环笑。

javascript string webpage
3个回答
1
投票

您可以使用while循环与数组和includes的测试。然后用switchtoLowerCase调用函数:

employeeTypeCode=prompt("Please enter the employee's type code: F/f or R/r");

while (!["F", "f", "R", "r"].includes(employeeTypeCode)) {
    employeeTypeCode=prompt("Please enter the employee's type code: F/f or R/r");
}

switch (employeeTypeCode.toLowerCase()) {
    case "f":
        FacultyPayroll();
        break;
    case "r":
        RegularWorkerPayroll();
        break;
}

CalculateTotalPay();
DisplayPaySlip();

0
投票

使用如下while循环:

var employeeTypeCode;

while (employeeTypeCode != "r" && employeeTypeCode != "f") {
  employeeTypeCode = prompt("Please enter the employee's type code: F/f or R/r").toLowerCase();
}

0
投票

您可以使用do-while循环来获取用户的输入,并保持请求,如果他们进入了无效的选项。

您可以使用.toLowerCase()您的输入,所以你只需要检查你的字母的小写版本。然后,你也可以使用一个对象来你的信映射到它调用相关的函数,该函数employeeTypeCode特定功能,

function calculatePayroll() {
  var options = {
    'r': RegularWorkerPayroll,
    'f': FacultyPayroll
  }

  employeeNumber = prompt("Please enter the employee number");
  employeeName = prompt("Please enter the employee's name");
  employeeDepartment = prompt("Please enter the employee's department");
  employeesHours = prompt("Please enter the number of hours the employee worked ");

  do {
    employeeTypeCode = prompt("Please enter the employee's type code: F/f or R / r ").toLowerCase();
  } while(employeeTypeCode !== "r" && employeeTypeCode !== "f");

  options[employeeTypeCode]();
  CalculateTotalPay();
  DisplayPaySlip();
}

此外,它通常是很好的做法,只使用大写字母函数名,如果它是一个构造函数,而不是一个普通的函数像这样的。

© www.soinside.com 2019 - 2024. All rights reserved.