繁体   English   中英

基本的Java程序未返回结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM