Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Else if语句没有贯穿所有可能性_Java - Fatal编程技术网

Java Else if语句没有贯穿所有可能性

Java Else if语句没有贯穿所有可能性,java,Java,当我在一个方法中运行这段代码时,冲突D永远不会工作/打印。但是,碰撞始终打印。因此,通常cmd打印“碰撞A碰撞完成”,但当发生碰撞d时,它只打印“碰撞完成” 编辑:大大简化了代码,条件本身不是问题。基本上,忽略了混乱的变量,您有以下设置: if (condition1){//checks intersect if(condition2){//checks A if(condition3){ System.out.pr

当我在一个方法中运行这段代码时,冲突D永远不会工作/打印。但是,碰撞始终打印。因此,通常cmd打印“碰撞A碰撞完成”,但当发生碰撞d时,它只打印“碰撞完成”


编辑:大大简化了代码,条件本身不是问题。

基本上,忽略了混乱的变量,您有以下设置:

    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+