【发布时间】:2023-03-31 21:41:02
【问题描述】:
我希望用户输入一两个数字,如果输入错误数据,则强制他们重新输入。我的想法是,如果用户输入了错误的数字,程序只会再次重复该问题。但是,我希望如果他们犯了错误,程序会停止所有其他活动,直到他们输入正确的数据,然后继续。
public int getShift()
{
Scanner keyboard= new Scanner(System.in);
for(int shift = 1; shift == 1;)
{
System.out.println("It's the Day Shift");
break;
}
for(int shift = 2; shift == 2;)
{
System.out.println("It's the Night Shift");
break;
}
while (shift < 0 | shift > 3);
{
System.out.println("Sorry enter a number one or two:");
System.out.println("");
System.out.println("Enter the employee Shift: ");
shift=keyboard.nextInt();;
}
return shift;
}
整个代码:
import java.util.Scanner;
class Employee
{
//fields
private String Empname;
private String Empnumber;
private String Hiredate;
//parameterized constructor
public Employee(String Empname,String Empnumber,
String Hiredate)
{
setName(Empname);
setNumber(Empnumber);
setHireDate(Hiredate);
}
//Mutator functions
//sets employee name
public void setName(String n)
{
Empname = n;
}
//sets employee number
public void setNumber(String num)
{
Empnumber = num;
}
//sets hire date
public void setHireDate(String h)
{
Hiredate = h;
}
/* Accessor functions */
//returns employee name
public String getName()
{
return Empname;
}
//returns employee number
public String getNumber()
{
return Empnumber;
}
//returns hire date
public String getHireDate()
{
return Hiredate;
}
}
class ProductionWorker extends Employee
{
//fields
private int shift;
private double hourpayrate;
//constructor
public ProductionWorker(String Empname,
String Empnumber,
String Hiredate,int shift,
double hourpayrate)
{
super(Empname,Empnumber,Hiredate);
setShift(shift);
setHourlyPayRate(hourpayrate);
}
//accessor
public int getShift()
{
Scanner keyboard= new Scanner(System.in);
for(int shift = 1; shift == 1;)
{
System.out.println("It's the Day Shift");
break;
}
for(int shift = 2; shift == 2;)
{
System.out.println("It's the Night Shift");
break;
}
while (shift < 0 | shift > 3);
{
System.out.println("Sorry enter a number one or two:");
System.out.println("");
System.out.println("Enter the employee Shift: ");
shift=keyboard.nextInt();;
}
return shift;
}
public double getHourlyPayRate()
{
return hourpayrate;
}
//mutator
public void setShift(int s)
{
shift = s;
}
public void setHourlyPayRate(double r)
{
hourpayrate = r;
}
}
【问题讨论】:
-
您的问题不清楚。 “优先级”的来源、优化以及关闭后程序将如何继续运行都不清楚......
-
@Jon 我很确定“关闭”他的意思是“停止做任何其他事情”,而不是真正终止。我仍然不确定这在单线程程序中有何意义
-
我的意思是暂停如何暂停一个java程序或控制哪个语句先执行。
-
@Michael:当然。 @user516805:您使用循环、“if”语句等。不过,这里很难详细解释——我强烈建议您仔细阅读一本好的 Java 书籍。
-
看看我的代码,我有循环和条件,但需要了解更多高级的东西。例如,我在另一个类中有一个语句,我希望它在另一个类中的语句之后运行。
标签: java optimization loops