Java Else if语句没有贯穿所有可能性
当我在一个方法中运行这段代码时,冲突D永远不会工作/打印。但是,碰撞始终打印。因此,通常cmd打印“碰撞A碰撞完成”,但当发生碰撞d时,它只打印“碰撞完成”Java Else if语句没有贯穿所有可能性,java,Java,当我在一个方法中运行这段代码时,冲突D永远不会工作/打印。但是,碰撞始终打印。因此,通常cmd打印“碰撞A碰撞完成”,但当发生碰撞d时,它只打印“碰撞完成” 编辑:大大简化了代码,条件本身不是问题。基本上,忽略了混乱的变量,您有以下设置: if (condition1){//checks intersect if(condition2){//checks A if(condition3){ System.out.pr
编辑:大大简化了代码,条件本身不是问题。基本上,忽略了混乱的变量,您有以下设置:
if (condition1){//checks intersect
if(condition2){//checks A
if(condition3){
System.out.println("Collision A");
}
}else if(condition4){
if(condition5){
System.out.println("Collision B");
}
}else if(condition6){
System.out.println("Collision C");
}else{
System.out.println("Collision D");
}
System.out.println("Collision done");
}
仅打印“碰撞完成”消息而不打印其他“碰撞A-D”消息的唯一方法是触发条件1、2和非3,或者触发条件1、4和非5。您没有触发“碰撞D”用例;您的“碰撞A”和“碰撞B”用例不完整
在这种情况下,如果要触发“冲突D”,则需要将If(条件2)
改为If(条件2&&!条件3&&!条件4&&!条件6)
;或者,如果您遇到“条件4”情况,则需要将if(条件4)
改为if(条件4&&!条件5&&!条件6)
或者,改变你的结构,使之更像:
if (condition1){//checks intersect
if(condition2){//checks A
if(condition3){
System.out.println("Collision A");
}
}else if(condition4){
if(condition5){
System.out.println("Collision B");
}
}else if(condition6){
System.out.println("Collision C");
}else{
System.out.println("Collision D");
}
System.out.println("Collision done");
}
考虑到原始代码的复杂性和更新后代码的模糊性,很难确定哪一个更适合您的特定情况。基本上,忽略混乱的变量,您有以下设置:
if (condition1){//checks intersect
if(condition2){//checks A
if(condition3){
System.out.println("Collision A");
}
}else if(condition4){
if(condition5){
System.out.println("Collision B");
}
}else if(condition6){
System.out.println("Collision C");
}else{
System.out.println("Collision D");
}
System.out.println("Collision done");
}
仅打印“碰撞完成”消息而不打印其他“碰撞A-D”消息的唯一方法是触发条件1、2和非3,或者触发条件1、4和非5。您没有触发“碰撞D”用例;您的“碰撞A”和“碰撞B”用例不完整
在这种情况下,如果要触发“冲突D”,则需要将If(条件2)
改为If(条件2&&!条件3&&!条件4&&!条件6)
;或者,如果您遇到“条件4”情况,则需要将if(条件4)
改为if(条件4&&!条件5&&!条件6)
或者,改变你的结构,使之更像:
if (condition1){//checks intersect
if(condition2){//checks A
if(condition3){
System.out.println("Collision A");
}
}else if(condition4){
if(condition5){
System.out.println("Collision B");
}
}else if(condition6){
System.out.println("Collision C");
}else{
System.out.println("Collision D");
}
System.out.println("Collision done");
}
鉴于原始代码的复杂性,以及更新后的代码的模糊性,很难确定哪种代码更适合您的具体情况。应该将该代码取出并拍摄下来。不发慈悲,说真的,你怎么能调试那团乱麻?重构、简化、在需要的地方使用方法,但为了您和我们的利益,请清理这些混乱。@HovercraftFullOfEels Shootin'对这段代码来说太好了。拿一个勺子,一个柠檬和一个奶酪磨碎器。不要担心混乱,我只是不明白为什么当碰撞C if语句返回false时,碰撞d代码不会运行。即使只是在这里或那里添加一个空格,虽然在语法上不必要,但也会大大提高代码的可读性。没有理由把代码塞进尽可能小的空间。显示80列的日子早已过去。修复你的混乱的目的是为了我们能帮助你。记住,你是在这里寻求帮助的人,而我,作为其中之一,不会走进一个堆满了足踝高的屎的房间。这些代码应该被拿出来,然后被枪毙。不发慈悲,说真的,你怎么能调试那团乱麻?重构、简化、在需要的地方使用方法,但为了您和我们的利益,请清理这些混乱。@HovercraftFullOfEels Shootin'对这段代码来说太好了。拿一个勺子,一个柠檬和一个奶酪磨碎器。不要担心混乱,我只是不明白为什么当碰撞C if语句返回false时,碰撞d代码不会运行。即使只是在这里或那里添加一个空格,虽然在语法上不必要,但也会大大提高代码的可读性。没有理由把代码塞进尽可能小的空间。显示80列的日子早已过去。修复你的混乱的目的是为了我们能帮助你。记住,你是在这里寻求帮助的人,而我,作为其中之一,不会走进一间堆满了足踝高的屎的房间。耶,我们把它重新打开了。1+耶,我们把它重新打开了。1+