为什么我的if-else语句在gender == "m"
或gender == "f"
?
Scanner input = new Scanner(System.in);
do
{
System.out.print("Please enter 'm' for male and 'f' for female child: ");
String gender = input.next();
System.out.print("The height of the mother in inches: ");
int motherHeight = input.nextInt();
System.out.println("The height of the father in inches: ");
int fatherHeight = input.nextInt();
if(gender == "m")
{
double childHeight = ((motherHeight * 13/12) + fatherHeight) / 2;
System.out.println(childHeight);
}
else if (gender == "f")
{
double childHeight = ((fatherHeight * 13/14) + motherHeight) / 2;
System.out.println(childHeight);
}
}
while(input.hasNext());
答案 0 :(得分:0)
使用正确的方法来比较字符串,因为您正在比较字符串的内存位置
<强>问题强>
if(gender == "m") //compares memory location of the String will return always false
<强>溶液强>
if(gender.equals("m"))