繁体   English   中英

Java IF语句无法正常工作

[英]Java IF statements not working properly

我的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条件
  • 为每个比较使用单独的变量
  • 使用<=不是=< ,使用>=代替=>
  • 使用genderintageint变量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"); } 

首先是...

  1. 在if条件下,用>=替换= > ,用<=替换= > =< ,用==替换= > = (比较性别时)。
  2. 性别是string而在Java字符串中.equals()进行比较,而不是以'=='进行比较。

您那里有几个问题:

  • = <运算符被写入<= (无空格, =<之后); = > (即>=
  • gender = 0 || 1 gender = 0 || 1必须为genderint == 0 || genderint == 1 genderint == 0 || genderint == 1
  • age = >27 && <60应该是age >= 27 && age < 60

首先,你应该使用genderintageint在你的条件。

其次,您似乎正在发明一些不存在的运算符:

  • gender = 0 || 1 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";
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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