我是java的新手,我正在做一些功课。 我正在努力写一个' If'声明,用字符串和int。 应该发生的是用户输入性别,今天的日期和他们的生日。 那么该程序应该告诉你,如果你是一个男性并且你是一个特定的年龄,你最好的比率是...... 但是,我遇到麻烦的是,如何写一个' If'带有int和字符串的语句?
// @评论是由我的教授发表的Scanner kb = new Scanner(System.in);
System.out.println("Welcome to the car renter's rate finder.");
System.out.print("Please enter the renter's gender (m/f): ");
String gender = kb.nextLine();
System.out.print("Please enter the today's date (mm dd yyyy): ");
int curMonth = kb.nextInt();
int curDay = kb.nextInt();
int curYear = kb.nextInt();
kb.nextLine();
System.out.print("Please enter the renter's date of birth (mm dd yyyy): ");
int birthMonth = kb.nextInt();
int birthDay = kb.nextInt();
int birthYear = kb.nextInt();
kb.nextLine();
int age = 0;
String rateResult;
// Get age...
age = calcAge(curMonth, curDay, curYear, birthMonth, birthDay, birthYear);
// Get the rental rate...
//rateResult = calcRateClass(age, gender);
// Display the results...
//displayResults(gender, age, rateResult);
displayResults(age);
}
}
private static int calcAge(int curMonth, int curDay, int curYear,int, birthMonth,int birthDay,int birthYear)
{
return curYear - birthYear;
}
private static void displayResults(int age)
{
System.out.printf("Thanks. \n");
System.out.printf("The driver is %d years old. \n",age);
if (age >= 35 && age <= 65)
//Best rate (male drivers, age 33 – 65 and female drivers, age 30 - 62) -- $40.00 per day, $200.00 per week
{
System.out.println("$40.00 per day, $200.00 per week.");
}
答案 0 :(得分:1)
首先,请务必将c
传递给gender
方法
displayResults
然后您可以使用private static void displayResults(String gender, int age)
来比较该值,但这是区分大小写的比较,因此类似String#equals
的内容将是更好的选择
获得该信息后,您可以在String#equalsIgnoreCase
声明中加入gender
你可以使用......
if
如果您希望使用&#34; M&#34;做更多事情,例如,如果他们的年龄超过if (gender.equalsIgnoreCase("M") {
if (age >= 35 && age <= 65) {
就好了。
如果您只是针对&#34; M&#34;进行单一操作,您可以使用
之类的内容65
可以减少厄运的金字塔#34;缩进问题
我建议您查看The Strings trail和API docs了解更多详情
答案 1 :(得分:0)
在单个if语句
中实现此目的//最佳率(男性司机,年龄33-65岁,女性司机,30岁 - 62) - 每天40.00美元,每周200.00美元
如果符合以下条件,您可以使用此方法:
if( (gender.equalsIgnoreCase('m') && (age >= 33 && age <= 65)) || (gender.equalsIgnoreCase('f') && (age >= 30 && age <=62)) )
当然,您需要将性别参数传递给displayResults函数:
private static void displayResults(String gender, int age)