我的 if 语句有一些问题。错误显示此问题你能帮我弄清楚它有什么问题吗?主要任务是汽车保险公司根据申请人的年龄和性别有 4 类保险。
这是代码:
String gender, age;
char group;
int genderint, ageint;
gender = JOptionPane.showInputDialog("Please specify your gender(1 for male, 0 for female)");
age = JOptionPane.showInputDialog("Please enter your age");
genderint = Integer.parseInt(gender);
ageint = Integer.parseInt(age);
if (gender = 0 || 1 && age = > 18 && < 26) {
group = "Category A";
} else if (gender = 0 && age = > 27 && < 60) {
group = "Category B";
} else if (gender = 1 && age = > 27 && < 60) {
group = "Category C";
} else if (gender = 0 || 1 && age = > 60) {
group = "Category D";
} else if (gender = 0 || 1 && age = < 18) {
JOptionPane.showMessageDialog(null, "Sorry, you're too young");
}
JOptionPane.showMessageDialog(null, "You have been assignet to" + group);
}
}
试试这个,
- 使用
==
进行比较 <=
和>=
之间没有空间- 括号中的组
or
条件 - 对每个比较使用单独的变量
- 使用
<=
而不是=<
,使用>=
而不是=>
-
使用
genderint
和ageint
变量进行 int 比较if ((genderint == 0 || genderint ==1) && (ageint >=18 && ageint < 26)) { group = "Category A"; } else if(genderint == 0 && ageint >= 27 && ageint < 60){ group = "Category B"; } else if(genderint == 1 && ageint >= 27 && ageint < 60) { group = "Category C"; } else if((genderint == 0 || genderint == 1) && ageint >= 60) { group = "Category D"; } else if((genderint == 0 || genderint ==1) && ageint <18){ JOptionPane.showMessageDialog(null,"Sorry, you're too young"); }
首先要做的是...
- 在 if 条件下,将
= >
替换为>=
,=<
替换为<=
,=
替换为==
(比较性别时(。 - 性别是
string
的,在java字符串中,通过.equals()
而不是"=="进行比较。
您在那里有几个问题:
- 运算符写
= <
<=
(没有空格,=
在<
之后(;= >
也是如此(即>=
( -
gender = 0 || 1
需要genderint == 0 || genderint == 1
-
age = >27 && <60
应该age >= 27 && age < 60
首先,您应该在条件中使用genderint
和ageint
。
其次,您似乎正在发明一些不存在的运算符:
-
gender = 0 || 1
应该(genderint == 0 || genderint == 1)
- 比较需要==
-
age = >18 && <26
应ageint >= 18 && ageint < 26
- 大于或等于>=
//gender is string
if ((gender.equals("0") || gender.equals("1")) && (ageint >= 18 && ageint < 26))
{
//group is string
group = "Category A";
}