0

我正在制定最早期限算法,我需要验证。我有一个接受 3 个输入的 for 循环,例如,如果我首先输入这些值,它们是到达时间、突发时间和截止日期:

5 5 10

下一个值是

0 1 20

我需要验证到达时间的第二个输入是否低于前一个输入。如果是这样,它将输出一条错误消息,并再次使我能够输入第二份工作的值。它将继续这样做,直到它看到一个有效的输入。

for(int m=1;m<=n;m++)
{
    System.out.println("enter arrival time, burst time and deadline of process "+(m)+"(0 for none):");
    arrival[m]=sc.nextInt();
    burst[m]=sc.nextInt();
    deadline[m]=sc.nextInt();
}
4

2 回答 2

0

存储您的旧值(v在示例中)并将其与新值(在示例中)进行比较vn

class Values {
  public final int arrival;
  public final int burst;
  public final int deadline;

  public Values(int a, int b, int d) {
    this.arrival = a;
    this.burst = b;
    this.deadline = d;
  }
}

Values v = new Values(Integer.MIN_VALUE, Integer.MIN_VALUE,
    Integer.MIN_VALUE);
Values vn;
do {
  vn = new Values(sc.nextInt(), sc.nextInt(), sc.nextInt());
} while (vn.arrival < v.arrival);
于 2013-05-23T14:03:59.083 回答
0

要快速恢复,您可以执行以下操作。假设您从控制台读取值。

int[] array = new int[2];
try {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    for (int j = 0; j < array.length ; j++) {
            int k = Integer.parseInt(br.readLine());
            array[j] = k;
            if((j == 1) && (array[j] > array[j-1])) {
              System.out.printLn("Burst time must be lower than arrival time");
              j--;
            }

    }
 }

catch (Exception e) {
        e.printStackTrace();
 }
于 2013-05-23T14:20:11.557 回答