2015-11-01 145 views
0

我的if语句存在一些问题。错误显示这 Problem 你能帮我弄清楚它有什么问题吗?主要任务是根据申请人的年龄和性别,汽车保险公司有四类保险。Java IF语句无法正常工作

这是代码:第一

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); 
} 
} 
+3

谁告诉你,你可以写布尔表达式像这样的'性别= 0 || 1'是你不应该听的人。 – Tom

+0

@Tom 我刚刚开始上大学,我只是倾向于忘记一些事情。我需要多练习。 – Duzy

+1

那么,那么继续听你的老师; P。 – Tom

回答

2

尝试t他的,

  • 使用==用于比较
  • <=>=
  • 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"); 
    } 
    
+0

http://scr.hu/7ph/d8d1t 使用您的代码时弹出此错误。 – Duzy

+0

@mynawaz请重新检查一下如何比较字符串。 – Tom

+0

更改了使用genderint和ageint的代码 – mynawaz

1

第一件事......

  1. 更换= >>==<<====中,如果条件(性别比较时)。
  2. 性别是string,在java中字符串被.equals()比较而不是'=='。
+0

这样的菜鸟错误..哇。谢谢:D 虽然问题仍然存在。 – Duzy

1

你有几个问题有:

  • = <操作写入<=(没有空间,=<后);这同样适用于= >(即>=
  • gender = 0 || 1需求是genderint == 0 || genderint == 1
  • age = >27 && <60应该是所有的age >= 27 && age < 60
+1

@Tom没错,谢谢。 OP的'genderint',但他从来没有使用它。 – dasblinkenlight

+0

我已修复你给我的东西。有些错误仍然存​​在。 – Duzy

+0

@Duzy你是否发现了'gender' - >'genderint'编辑? – dasblinkenlight

1

首先,你应该用你的条件genderintageint

所有的二,你似乎发明了不存在一些运营商:

  • gender = 0 || 1应该是(genderint == 0 || genderint == 1) - 比较需要==

  • age = >18 && <26应该是ageint >= 18 && ageint < 26 - 大于或等于是>=

0
//gender is string 
    if ((gender.equals("0") || gender.equals("1")) && (ageint >= 18 && ageint < 26)) 
    { 
     //group is string 
     group = "Category A"; 
    }