2015-11-01 178 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"; 
    }