在java中进行切换以控制客户机/服务器过程

在java中进行切换以控制客户机/服务器过程,java,Java,我可以使用一些帮助来创建switch语句,以便控制代码。我用Java创建了一个客户端程序,可以连接到服务器/模拟器 当有人运行客户机程序时,它可以启动一个所谓的“过程”,该过程将尝试从一步到另一步并收集信息 这些步骤可以描述为: 1. Verify Operator 2. Ask operator for item number 3. Ask operator to verify item name and so on (there is like 8 steps, but i will onl

我可以使用一些帮助来创建switch语句,以便控制代码。我用Java创建了一个客户端程序,可以连接到服务器/模拟器

当有人运行客户机程序时,它可以启动一个所谓的“过程”,该过程将尝试从一步到另一步并收集信息

这些步骤可以描述为:

1. Verify Operator
2. Ask operator for item number
3. Ask operator to verify item name
and so on (there is like 8 steps, but i will only show 3 fornow)
因此,我的问题的一个例子是,当操作员向客户端发回一个项目编号时,这在示例中是错误的,我应该这样做,以便控制下一步应该运行哪个步骤

当然,如果在运行步骤时没有问题或错误,应该从1到8。但是如果输入的项目编号错误,我应该从步骤1或2开始

我不知道如何做到这一点,但我试图以某种方式创建一个switch语句。获取了一个名为“runProcedure”的方法,该方法将启动该过程。这里我创建了如下的switch语句

更新:

现在看起来是这样的:

public class Swich {

public int step = 1;
private int brutto;
private int netto;


public void runProcedure() {
    try {

        while(step != 4) {
            switch(step){
            case 1:
                //run "verify operator"
                System.out.println("Running step 1, checking brutto and netto");
                brutto = 50;
                netto = 100;

                if (brutto < netto) {
                    // program should just continue
                    System.out.println("Brutto/netto is ok!");
                    step = 2;
                    runProcedure();
                }

            case 2: 
                //run "Ask operator for item number"

                System.out.println("Running step 2");
                brutto = 50;
                netto = 100;

                if (brutto < netto) {
                    // program should just continue
                    step = 3;
                    runProcedure();
                }
                else {
                    // I should run case 1 or 2 again.
                    step  = 1;
                    runProcedure();
                }
                break;
            case 3: 
                //run "Ask operator to verify item name"
                System.out.println("Step 3 running");
                step = 4;
                break;
            default:
                //default
            }
        }
    }catch(Exception e) {

    }

}
公共类开关{
公共int步长=1;
私人int布鲁托;
内托私人酒店;
公共无效运行程序(){
试一试{
while(步骤!=4){
开关(步骤){
案例1:
//运行“验证操作员”
System.out.println(“运行步骤1,检查brutto和netto”);
布鲁托=50;
净值=100;
如果(布鲁托<内托){
//这个计划应该继续下去
System.out.println(“Brutto/netto还可以!”);
步骤=2;
runProcedure();
}
案例2:
//运行“向操作员询问项目编号”
System.out.println(“运行步骤2”);
布鲁托=50;
净值=100;
如果(布鲁托<内托){
//这个计划应该继续下去
步骤=3;
runProcedure();
}
否则{
//我应该再次运行案例1或案例2。
步骤=1;
runProcedure();
}
打破
案例3:
//运行“要求操作员验证项目名称”
System.out.println(“第3步运行”);
步骤=4;
打破
违约:
//违约
}
}
}捕获(例外e){
}
}

}

如果我做对了,您将尝试检查
itemnumber==right
,如果为true,则继续下一步,否则返回1,也许您可以在
过程中添加
循环来实现它

public void runProcedure(){
try {
    int step  = 1;
    while(step != 4) {
        switch(step){
            case 1:
            //run "verify operator"

            step = 2;
            break;
            case 2: 
            //run "Ask operator for item number"

            if (itemnumber == right) {
                // program should just continue
                step = 3;
            }
            else {
                // I should run case 1 or 2 again.
                step  = 1;
            }
            break;
            case 3: 
            //run "Ask operator to verify item name"
            step = 4;
            break;
            default:
            //default
        }
    }
}catch(Exception e) {
}
}

记住
步骤=4
仅适用于3个步骤,对于8个步骤,您可能需要对其进行调整。例如,我猜您在使步骤=3后忘记再次调用该方法。。看一看,我已经更新了我的线程,这就是测试开关的外观,我认为它可以工作:)现在我可以控制运行什么:我想没有必要这样做,例如,在
step
设置为
3
之后,它仍然会进入循环并执行
case 3