You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java嵌套if-else语句执行逻辑不符合预期问题排查

面试流程程序问题修复

问题现象

程序在输入PASS、CLEARED时流程符合预期,但如果在某一轮面试中输入非CLEARED值(比如NO),执行完「遗憾提示」后,仍会继续弹出后续面试的提问,不符合「执行else后直接退出流程」的需求。

问题根源

当前代码中,每一轮面试的判断都是独立的if-else语句,彼此没有嵌套关联。即使某一轮面试未通过,后续的代码依然会按顺序执行,因为它们不在前一个else的分支范围内,也没有中断流程的逻辑。

修复方案

把每一轮面试的流程嵌套在前一轮通过的分支里,这样只有通过上一轮,才会触发下一轮的提问;一旦某一轮未通过,直接执行else的提示后就会跳出整个嵌套流程,不会再执行后续步骤。

修正后的代码

package controlStatements;

import java.util.Scanner;

class nested_if_else_Statement {

    static public void main(String[] args) {
            
        Scanner scan = new Scanner(System.in);
        
        System.out.println("Online Assesment, enter PASS or FAIL?");
        String oa = scan.nextLine();
        if (oa.equals("PASS")) {   
            System.out.println("Please wait in the office lobby for further levels of interview.");
            
            System.out.println("Have you CLEARED first level of interview?");
            String level1 = scan.nextLine();
            if(level1.equals("CLEARED")) {
                System.out.println("Please wait for second level of interview.");    

                System.out.println("Have you CLEARED second level of interview?");
                String level2 = scan.nextLine();
                if(level2.equals("CLEARED")) {
                    System.out.println("Please wait for third level of interview.");

                    System.out.println("Have you CLEARED third level of interview?");
                    String level3 = scan.nextLine();
                    if(level3.equals("CLEARED")) {
                        System.out.println("Please wait for fourth level of interview.");

                        System.out.println("Have you CLEARED fourth level of interview?");
                        String level4 = scan.nextLine();
                        if(level4.equals("CLEARED")) {
                            System.out.println("Kindly wait for final level of HR Interview.");
                            System.out.println("Thank you for your patience.");

                            System.out.println("Have you DONE with your HR Interview?");
                            String levelHR = scan.nextLine();
                            if(levelHR.equals("DONE")) {
                                System.out.println("Please wait in the office lobby, will get back shortly."); 
                            }
                        }else {
                            System.out.println("We're sorry, better luck next time.");
                        }
                    }else {
                        System.out.println("We're sorry, better luck next time.");
                    }
                }else {
                    System.out.println("We're sorry, better luck next time.");
                }
            }else {
                System.out.println("We're Sorry, better luck next time.");
            }
            
        } else {
            System.out.println("We're Sorry, better luck next time");
        }

        scan.close();
    }
}

补充说明

也可以在每个else分支里添加return;语句直接终止main方法,但嵌套结构更贴合面试流程的递进逻辑,代码可读性更强。

内容的提问来源于stack exchange,提问作者Murali7373

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:44:51