【问题标题】:Can java prioritize which method executes and in which order?java可以优先考虑执行哪个方法以及按什么顺序执行吗?
【发布时间】: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


【解决方案1】:

因为我不想写你的整个代码,所以我会概括一些东西:

你可以把整个东西包起来:

while(true){  ...  }

然后在每次需要输入内容时暂停线程。在这个 while 循环结束时,检查他们是否输入了正确的答案。如果他们这样做了,请打破 while 循环。如果没有,请再次循环。

在 while 循环中执行以下操作:(伪代码)

if input == 1
    //theyre the day shift, run some dayshift code
    break;
elseif input == 2
    //theyre the night shift, run some nightshift code
    break;
else
    //they didn't enter a valid choice
    System.out.print("Please enter 1 or 2");

它会再次循环,再给他们一次机会。查看线程睡眠/暂停以等待他们的输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    相关资源
    最近更新 更多