我正在制作最早的截止日期算法,我需要验证。我有一个接受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();
}
答案 0 :(得分: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);
答案 1 :(得分: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();
}