[英]Basic java Program not returning result
我一直在做这些基本的Java项目,但我一直坚持下去: https : //programmingbydoing.com/a/gender-game.html代码的重点是将Mr,Mrs,Ms放在用户名。 无论我如何扭曲代码,我都无法得到年龄> 20和性别M的结果。
String gender,firstname,lastname, married;
String prefix ;
int age;
System.out.println("What is your gender (m or f): ");
gender=kb.next();
System.out.println("First name: ");
firstname=kb.next();
System.out.println("Last name: ");
lastname=kb.next();
System.out.println("Age: ");
age=kb.nextInt();
if(age<20)
System.out.println("Then I shall call you " +firstname+" "+lastname);
if(age>=20 && gender.equals("f"))
System.out.println("Are you married, "+firstname+"(y or n)?");
married=kb.next();
{if (married.equals("y"))
prefix="Mrs. ";
else
prefix="Ms. ";}
if (gender.equals("m"))
prefix="Mr. ";
System.out.println("Then I shall call you "+prefix+" "+lastname+".");
kb.close();
}
}
大括号在第二个if中放在错误的位置。 它应该看起来像:
else if(age>=20)
{
if(gender.equals("f"))
{
System.out.println("Are you married, "+firstname+"(y or n)?");
married=kb.next();
if (married.equals("y"))
prefix="Mrs. ";
else
prefix="Ms. ";
}
else if (gender.equals("m"))
{
prefix="Mr. ";
}
System.out.println("Then I shall call you "+prefix+" "+lastname+".");
}
当您必须在if语句中执行多行代码时,必须将代码放在花括号中。 否则,您将只运行第一行。
你应该这样做。 检查年龄,然后检查性别
if(age>=20) {// I would recommend just making this an else, since you already did < 20, so testing age here a second time is a waste
if (gender.equals("f")){
System.out.println("Are you married, "+firstname+"(y or n)?");
married=kb.next();
if (married.equals("y"))
prefix="Mrs. ";
else
prefix="Ms. ";
}
else{
prefix="Mr. ";
}
System.out.println("Then I shall call you "+prefix+" "+lastname+".");
}
kb.close();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.