如何在Java中创建几种不同的if条件
如果条件不起作用,则始终折价补贴=3250.00我需要它,具体取决于州和汽车年份。我附上了我的代码和更多的解释 置换补贴取决于车辆的制造年份以及初始购买时注册的国家。FHM不接受1990年之前制造的车辆作为折价补贴。对于在以下日期之间制造的车辆: 1990年和1999年,最初在伊利诺伊州、印第安纳州、爱荷华州、堪萨斯州、密歇根州、明尼苏达州、密苏里州或内布拉斯加州注册,贸易补贴为3000.00美元,其他所有州为2750.00美元 对于2000年至2009年期间制造并最初在伊利诺伊州、印第安纳州、爱荷华州、堪萨斯州、密歇根州、明尼苏达州、密苏里州、内布拉斯加州、北达科他州、俄亥俄州、南达科他州或威斯康星州注册的车辆,折让额为3250.00美元,其他所有州折让额为3000.00美元 对于2010年及以后制造的车辆,无论初始注册状态如何,置换补贴为5000.00美元如何在Java中创建几种不同的if条件,java,Java,如果条件不起作用,则始终折价补贴=3250.00我需要它,具体取决于州和汽车年份。我附上了我的代码和更多的解释 置换补贴取决于车辆的制造年份以及初始购买时注册的国家。FHM不接受1990年之前制造的车辆作为折价补贴。对于在以下日期之间制造的车辆: 1990年和1999年,最初在伊利诺伊州、印第安纳州、爱荷华州、堪萨斯州、密歇根州、明尼苏达州、密苏里州或内布拉斯加州注册,贸易补贴为3000.00美元,其他所有州为2750.00美元 对于2000年至2009年期间制造并最初在伊利诺伊州、印第安纳州、
if (vehiclesYear <= 1999 || vehiclesYear >= 1990
& (stateNames.getSelectedItem() == "IL")
|| (stateNames.getSelectedItem() == "IN")
|| (stateNames.getSelectedItem() == "IA")
|| (stateNames.getSelectedItem() == "KS")
|| (stateNames.getSelectedItem() == "MI")
|| (stateNames.getSelectedItem() == "MN")
|| (stateNames.getSelectedItem() == "MO")
|| (stateNames.getSelectedItem() == "NE")) {
tradeIn = 3000.00;
} else {
tradeIn = 2750.00;
}
if (vehiclesYear >= 2000
& (stateNames.getSelectedItem() == "IL")
|| (stateNames.getSelectedItem() == "IN")
|| (stateNames.getSelectedItem() == "IA")
|| (stateNames.getSelectedItem() == "KS")
|| (stateNames.getSelectedItem() == "MI")
|| (stateNames.getSelectedItem() == "MN")
|| (stateNames.getSelectedItem() == "MO")
|| (stateNames.getSelectedItem() == "NE")
|| (stateNames.getSelectedItem() == "ND")
|| (stateNames.getSelectedItem() == "OH")
|| (stateNames.getSelectedItem() == "SD")
|| (stateNames.getSelectedItem() == "WI")) {
tradeIn = 3250.00;
} else {
tradeIn = 3000.00;
}
if (vehiclesYear >= 2010) {
tradeIn = 5000.00;
}
if(车辆年份=1990
&(stateNames.getSelectedItem()=“IL”)
||(stateNames.getSelectedItem()=“IN”)
||(stateNames.getSelectedItem()=“IA”)
||(stateNames.getSelectedItem()=“KS”)
||(stateNames.getSelectedItem()=“MI”)
||(stateNames.getSelectedItem()=“MN”)
||(stateNames.getSelectedItem()=“MO”)
||(stateNames.getSelectedItem()=“NE”)){
贸易额=3000.00;
}否则{
贸易额=2750.00;
}
如果(车辆年份>=2000
&(stateNames.getSelectedItem()=“IL”)
||(stateNames.getSelectedItem()=“IN”)
||(stateNames.getSelectedItem()=“IA”)
||(stateNames.getSelectedItem()=“KS”)
||(stateNames.getSelectedItem()=“MI”)
||(stateNames.getSelectedItem()=“MN”)
||(stateNames.getSelectedItem()=“MO”)
||(stateNames.getSelectedItem()=“NE”)
||(stateNames.getSelectedItem()=“ND”)
||(stateNames.getSelectedItem()=“噢”)
||(stateNames.getSelectedItem()=“SD”)
||(stateNames.getSelectedItem()=“WI”)){
贸易额=3250.00;
}否则{
贸易额=3000.00;
}
如果(车辆年份>=2010){
贸易额=5000.00;
}
我不能完全确定这一点,但您可能必须将“tradein=3000.00;”放在一个块中才能解决它。{}在'if'语句之后和'else'语句之前,所有内容都应该被包围在一个块中,这可能会改变并修复您的问题 目前任何一年都满足以下条件:
if (vehiclesYear <= 1999 || vehiclesYear >= 1990)
if(车辆年份=1990)
这是因为每年不是在1999年之前就是在1990年之后
如果您想要1999年至1990年之间的年份,则需要执行以下操作:
if (vehiclesYear <= 1999 && vehiclesYear >= 1990)
if(车辆年份=1990)
让我们浏览一下您的代码
如果你想要一张中间支票
跟随变化
if (vehiclesYear <= 1999 || vehiclesYear >= 1990)
并使用此项进行比较
另外,由于它是一个字符串,我建议您使用.equals()
方法进行比较,而不是=
,以避免参考比较问题
此外,为了进行比较,您可以使用switch(item)
Java7及更高版本支持相同的方法
像
一个主要问题是,您正在使用==运算符比较字符串,这不能保证给出预期的结果
在Java中,字符串是对象,并且==运算符比较对象引用相等。
所以如果我这样做了
String myString = "Foo";
if (myString == "Foo") {
System.out.println("They are the same");
} else {
System.out.println("They are not the same");
}
结果不能保证。要比较字符串是否相等,请使用String.equals(String)
方法
从风格上讲,我可能会将状态代码插入单独的Set
实例中,如下所示:
private boolean isInTheNineties(int year) {
return year >= 1990 && year <= 1999;
}
private double getTradeIn(int vehiclesYear, SomeClass stateNames) {
Set<String> s0 = new HashSet<>();
s0.addAll(Arrays.asList("IL", ... , "NE"));
String registrarState = stateNames.getSelectedItem();
if (isInTheNineties(vehiclesYear)) {
if (s0.contains(registrarState)) {
return 3000.00;
} else {
return 2750.00;
}
}
// And so on for the 2000s
}
private boolean Isinthenienties(整数年){
return year>=1990&&year用一个示例简要说明您的问题,并提供相关代码(缩进良好)。我们不需要完整的代码。发布一篇。vehiclesYear=1990
这实际上没有任何作用。虽然很多人都有可能重复,但在这里没有任何功能上的区别。好的,谢谢你的提示:)我是java新手,正在尝试收集这些声誉点,我认为我的研究是正确的,但好的,谢谢你的建议e Help不要“试图抬高”声誉。你需要用恰当、结构合理、信息灵通的答案来赢得声誉。如果你是Java新手,在回答其他Java新手的问题之前,先体验一下它。然后,尝试回答没有被否决5次的问题……这说明了这个问题。
switch (item)
{
case "IL":
case "IN":
.
.
case "KS":
return true;//or do something here
break;
}
String myString = "Foo";
if (myString == "Foo") {
System.out.println("They are the same");
} else {
System.out.println("They are not the same");
}
private boolean isInTheNineties(int year) {
return year >= 1990 && year <= 1999;
}
private double getTradeIn(int vehiclesYear, SomeClass stateNames) {
Set<String> s0 = new HashSet<>();
s0.addAll(Arrays.asList("IL", ... , "NE"));
String registrarState = stateNames.getSelectedItem();
if (isInTheNineties(vehiclesYear)) {
if (s0.contains(registrarState)) {
return 3000.00;
} else {
return 2750.00;
}
}
// And so on for the 2000s
}