我写了一个小程序,展示了三位教授和印刷品,其中一位是最老的,也是最年轻的。我认为我的if语句是正确的,但它为两个语句打印出相同的名称。
public class app {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String initName = "Megan";
String lastName = "Smith";
String Degree = "Economics";
int age = 40;
professor2 pr1 = new professor2 (initName,lastName, Degree, age);
professor2 pr2 = new professor2 ("John","White","Statistics", 55);
professor2 pr3 = new professor2 ("Jill","Black","History", 60);
//Check Oldest
if ((pr1.getAge() > pr2.getAge()) && (pr1.getAge() > pr3.getAge())){
System.out.println(pr1.getName() + " is older");}
if ((pr2.getAge() > pr1.getAge()) && (pr2.getAge() > pr3.getAge())){
System.out.println(pr1.getName() + " is older");}
if ((pr3.getAge() > pr1.getAge()) && (pr3.getAge() > pr1.getAge())){
System.out.println(pr1.getName() + " is older");}
//Chech Youngest
if ((pr1.getAge() < pr2.getAge()) && (pr1.getAge() < pr3.getAge())){
System.out.println(pr1.getName() + " is younger");}
if ((pr2.getAge() < pr1.getAge()) && (pr2.getAge() < pr3.getAge())){
System.out.println(pr1.getName() + " is younger");}
if ((pr3.getAge() < pr1.getAge()) && (pr3.getAge() < pr1.getAge())){
System.out.println(pr1.getName() + " is younger");}
}
}
}
然后我的第二个文件是:
public class professor2 {
String firstName;
String lastName;
String Degree;
int age;
professor2 (String myFirstName, String myLastName,String myDegree, int myAge)
{
firstName = myFirstName;
lastName= myLastName;
Degree = myDegree;
age = myAge;
}
String getName()
{
return firstName + " " +lastName;
}
String getDegree()
{
return Degree;
}
int getAge()
{
return age;
}
}
答案 0 :(得分:0)
Dijam你怎么会想出最古老和最年轻的逻辑?我想一旦你把排序的年龄...然后用hashmap中的名字映射。当一个人要求最年轻或最老的去搜索排序列表时检索Hashmap中的名称?
答案 1 :(得分:0)
01。
您每次都打印pr1
的名称!
System.out.println(pr1.getName() + " is older");
根据相应professor2
语句的逻辑,更改每个if
块中上一行中if
类的对象。
<强> 02 强>
第3次 if
声明:
if ((pr3.getAge() > pr1.getAge()) && (pr3.getAge() > pr1.getAge())){
System.out.println(pr1.getName() + " is older");}
您要将pr3
与pr1
进行两次比较。但您需要将pr3
与pr1
进行一次比较,将pr2
进行一次比较。
<强> 03 强>
第6个 if语句相同:
if ((pr3.getAge() < pr1.getAge()) && (pr3.getAge() < pr1.getAge())){
System.out.println(pr1.getName() + " is younger");}
将pr3
与pr1
和pr2
进行比较。不是pr1
两次。
答案 2 :(得分:0)
每次都打印相同的内容:
System.out.println(pr1.getName() + " is _____");}
在每个if
声明中使用您要打印的教授。