这是我的代码:
CLASS
package work;
public class Run {
private int sec;
private int sec2;
private int sec3;
private double min;
private double min2;
private double min3;
private String n1;
private String n2;
private String n3;
public Run(int s, int ss, int sss, String n, String nn, String nnn){
sec = s;
sec2 = ss;
sec3 = sss;
n1 = n;
n2 = nn;
n3 = nnn;
calcMin();
}
public void calcMin(){
min = (double) sec/60;
min2 = (double) sec2/60;
min3 = (double) sec3/60;
}
public String getres(){
String res = "";
if(min>min2 && min>min3 && min2>min3){
res = n1+n2+n3;
}
else if (min>min2 && min>min3 && min2<min3){
res = n1+n3+n2;
}
else if (min2>min && min2>min3 && min>min3){
res = n2+n1+n3;
}
return res;
}
}
MAIN
Scanner x = new Scanner(System.in);
System.out.println("n1");
String ni = x.next();
System.out.println("His time in s");
int s1 = x.nextInt();
System.out.println("n2");
String nii = x.next();
System.out.println("His time in s");
int s2 = x.nextInt();
System.out.println("n3");
String niii = x.next();
System.out.println("His time in s");
int s3 = x.nextInt();
Run gogo = new Run(s1, s2, s3, ni, nii, niii);
System.out.println(gogo.getres());
最后,它没有显示任何内容,它是空白的。 问题在几分钟的比赛中询问结果。 就像在比赛中一样,时间最短的那个必须是第一个等等。 然后,它必须根据他们的时间显示第一个,第二个和第三个的名称。
问题是,在主要问题之后,它没有显示任何内容。 我知道高级人员会使用数组列表,但我不允许这样做。 我没有把所有if-else-if语句都放进去,因为它仍然没有用。 请帮帮我。
答案 0 :(得分:0)
是的, IF 语句条件中的逻辑肯定需要调整才能维护 First , Second 和第三个获胜者参加比赛时间。
然而,你可以看到这个的另一种方法是为每个赛车获取所有计算的时间值并按升序对它们进行排序。这里的技巧是让每个赛车的名称跟随各自的时间值,因为这些值正在排序。无论如何,您实际上正在使用 IF 和 ELSE / IF 语句执行此操作。这是另一种方式。由于只有三个赛车手,因此可以通过在每个 IF 语句代码块中声明并使用一些临时变量(一个 double 变量和一个 String < / em>变量)。
以下是一个例子:
// Sort race times and racer names
// to follow their race time...
if (min > min2) {
double tmpVal = min;
String tmp = n1;
min = min2; n1 = n2;
min2 = tmpVal; n2 = tmp;
}
if (min2 > min3) {
double tmpVal = min2;
String tmp = n2;
min2 = min3; n2 = n3;
min3 = tmpVal; n3 = tmp;
}
if (min > min2) {
double tmpVal = min;
String tmp = n1;
min = min2; n1 = n2;
min2 = tmpVal; n2 = tmp;
}
// Display Race Results in console...
System.out.println("The race winners are:");
System.out.println("First Place:\t" + n1 + "\t(in " + min + " minutes)");
System.out.println("Second Place:\t" + n2 + "\t(in " + min2 + " minutes)");
System.out.println("Third Place:\t" + n3 + "\t(in " + min3 + " minutes)");
我想是值得深思的。