Java代码实验室逻辑错误
有人能解释一下为什么我会有逻辑错误吗。 输出应该是 输入·跑步者·1·姓名:·输入·跑步者·1·时间·分钟:·输入·跑步者·2·姓名:·输入·跑步者·2·时间·分钟:·输入·跑步者·3·姓名:·输入·跑步者·3·时间·分钟:·跑步者3↵ Runner1↵ Runner2↵Java代码实验室逻辑错误,java,Java,有人能解释一下为什么我会有逻辑错误吗。 输出应该是 输入·跑步者·1·姓名:·输入·跑步者·1·时间·分钟:·输入·跑步者·2·姓名:·输入·跑步者·2·时间·分钟:·输入·跑步者·3·姓名:·输入·跑步者·3·时间·分钟:·跑步者3↵ Runner1↵ Runner2↵ import java.util.Scanner; public class Runners { public static void main(String[] args) { Scanner keyboard
import java.util.Scanner;
public class Runners {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
double t1,
t2,
t3;
System.out.print("Enter runner 1 name:");
String name1;
name1 = keyboard.nextLine();
System.out.print(" Enter runner 1 time (in minutes):");
String time1;
time1 = keyboard.nextLine();
System.out.print(" Enter runner 2 name:");
String name2;
name2 = keyboard.nextLine();
System.out.print(" Enter runner 2 time (in minutes):");
String time2;
time2 = keyboard.nextLine();
System.out.print(" Enter runner 3 name:");
String name3;
name3 = keyboard.nextLine();
System.out.print(" Enter runner 3 time (in minutes):");
String time3;
time3 = keyboard.nextLine();
t1 = Double.parseDouble(time1);
t2 = Double.parseDouble(time2);
t3 = Double.parseDouble(time3);
if(t1 > t2 && t1 > t3){
if(t2>t3){
System.out.print(" "+ name3 + "\n"+ name2 + "\n" + name1+ "\n");
}
else{
System.out.print(" "+ name2 + "\n" + name3 + "\n" + name1+ "\n");
}
}
else if(t2>t1 && t2>t3){
if(t1>t3){
System.out.print(" " + name3 + "\n" + name1 + "\n" + name2+ "\n");
}
else{
System.out.print(" " + name1 + "\n" + name3 + "\n" + name2+ "\n");
}
}
else if(t3>t2 && t3>t1){
if(t2>t1){
System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n");
}
else{
System.out.print(" " + name2 + "\n" + name1 + "\n" + name3+ "\n");
}
}
else if(t3==t2 && t3==t1){
if(t2>t1){
System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n");
}
else{
System.out.print(" " + name1 + "\n" + name2 + "\n" + name3 + "\n");
}
}
}
}
我来到这里是为了寻找同一个问题的答案,并在本例中使用了代码。最后出现了一个合乎逻辑的问题。第67行中的AND应为OR。你不能有一个1等于2,2等于3的条件,然后问2是否大于1,并期望它起作用
import java.util.Scanner;
public class Runners {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
double t1,
t2,
t3;
System.out.print("Enter runner 1 name:");
String name1;
name1 = keyboard.nextLine();
System.out.print(" Enter runner 1 time (in minutes):");
String time1;
time1 = keyboard.nextLine();
System.out.print(" Enter runner 2 name:");
String name2;
name2 = keyboard.nextLine();
System.out.print(" Enter runner 2 time (in minutes):");
String time2;
time2 = keyboard.nextLine();
System.out.print(" Enter runner 3 name:");
String name3;
name3 = keyboard.nextLine();
System.out.print(" Enter runner 3 time (in minutes):");
String time3;
time3 = keyboard.nextLine();
t1 = Double.parseDouble(time1);
t2 = Double.parseDouble(time2);
t3 = Double.parseDouble(time3);
if(t1 > t2 && t1 > t3){
if(t2>t3){
System.out.print(" "+ name3 + "\n"+ name2 + "\n" + name1+ "\n");
}
else{
System.out.print(" "+ name2 + "\n" + name3 + "\n" + name1+ "\n");
}
}
else if(t2>t1 && t2>t3){
if(t1>t3){
System.out.print(" " + name3 + "\n" + name1 + "\n" + name2+ "\n");
}
else{
System.out.print(" " + name1 + "\n" + name3 + "\n" + name2+ "\n");
}
}
else if(t3>t2 && t3>t1){
if(t2>t1){
System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n");
}
else{
System.out.print(" " + name2 + "\n" + name1 + "\n" + name3+ "\n");
}
}
else if(t3==t2 || t3==t1){
if(t2>t1){
System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n");
}
else{
System.out.print(" " + name1 + "\n" + name2 + "\n" + name3 + "\n");
}
}
}
}
我来到这里是为了寻找同一个问题的答案,并在本例中使用了代码。最后出现了一个合乎逻辑的问题。第67行中的AND应为OR。你不能有一个1等于2,2等于3的条件,然后问2是否大于1,并期望它起作用
import java.util.Scanner;
public class Runners {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
double t1,
t2,
t3;
System.out.print("Enter runner 1 name:");
String name1;
name1 = keyboard.nextLine();
System.out.print(" Enter runner 1 time (in minutes):");
String time1;
time1 = keyboard.nextLine();
System.out.print(" Enter runner 2 name:");
String name2;
name2 = keyboard.nextLine();
System.out.print(" Enter runner 2 time (in minutes):");
String time2;
time2 = keyboard.nextLine();
System.out.print(" Enter runner 3 name:");
String name3;
name3 = keyboard.nextLine();
System.out.print(" Enter runner 3 time (in minutes):");
String time3;
time3 = keyboard.nextLine();
t1 = Double.parseDouble(time1);
t2 = Double.parseDouble(time2);
t3 = Double.parseDouble(time3);
if(t1 > t2 && t1 > t3){
if(t2>t3){
System.out.print(" "+ name3 + "\n"+ name2 + "\n" + name1+ "\n");
}
else{
System.out.print(" "+ name2 + "\n" + name3 + "\n" + name1+ "\n");
}
}
else if(t2>t1 && t2>t3){
if(t1>t3){
System.out.print(" " + name3 + "\n" + name1 + "\n" + name2+ "\n");
}
else{
System.out.print(" " + name1 + "\n" + name3 + "\n" + name2+ "\n");
}
}
else if(t3>t2 && t3>t1){
if(t2>t1){
System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n");
}
else{
System.out.print(" " + name2 + "\n" + name1 + "\n" + name3+ "\n");
}
}
else if(t3==t2 || t3==t1){
if(t2>t1){
System.out.print(" " + name1 + "\n" + name2 + "\n" + name3+ "\n");
}
else{
System.out.print(" " + name1 + "\n" + name2 + "\n" + name3 + "\n");
}
}
}
}
你的问题不是很清楚,你能详细说明一下吗提示是:11。赛跑写一个程序,询问三名赛跑者的名字以及他们完成一场比赛所用的时间(以分钟为单位)。程序应按跑步者完成的顺序显示跑步者的姓名。我必须使输出与我上面发布的完全相同,当我发布它时,我会得到一个逻辑错误。它说我的标准输出的内容不正确。没有逻辑错误吗?它完全按照它应该的方式输出。我也不知道,codelab一直告诉我我有一个逻辑错误。我唯一能告诉你的是打印格式不好。你有一些不需要空格的空格,特别是如果你只是移动到下一行。你的问题不是很清楚,你能详细说明一下吗提示是:11。赛跑写一个程序,询问三名赛跑者的名字以及他们完成一场比赛所用的时间(以分钟为单位)。程序应按跑步者完成的顺序显示跑步者的姓名。我必须使输出与我上面发布的完全相同,当我发布它时,我会得到一个逻辑错误。它说我的标准输出的内容不正确。没有逻辑错误吗?它完全按照它应该的方式输出。我也不知道,codelab一直告诉我我有一个逻辑错误。我唯一能告诉你的是打印格式不好。您有不需要空格的空格,特别是如果您只是移动到下一行。