为什么switch语句没有进入案例2?

时间:2016-02-08 03:03:48

标签: java switch-statement

感谢您阅读我的问题。 我对编译器没有任何问题,当我运行程序时,案例1运行良好,但案例2不起作用,当我尝试使用它时程序返回主菜单。比你的帮助。

    $client->getEngine()->addOption("--proxy-type=socks5");

以下是两种方法:

public static void main(String[] args) {
    int opcion=0;
    double[][] m;

    do{

        m=new double[0][0];
        opcion=Integer.parseInt(JOptionPane.showInputDialog(null,"El programa permite:\n1.Ingresar Inventario\n2.Calcular Inventario\n3.Salir"));
        switch(opcion){
            case 1: 


                m=Metodos.LLenarMatriz();
                Metodos.Imprimir(m);

            break;

            case 2:

                double[][] r=Metodos.CalcularInventario(m);
                Metodos.Imprimir(r);
            break;    
        }

    }
    while(opcion!=3);


    }

}

public static double[][] CalcularInventario (double[][] x){

    double fac,n=0;
    int filx;
    filx=x.length;
    double [][] c=new double[filx][3];
    for(int i=0;i<x.length;i++){
        for(int j=0;j<x[i].length;j++){
            c[i][j]=x[i][j];
        }
    }
    for(int i=0; i<c.length;i++)
    {
        fac=x[i][0];


        n=fac*c[i][1];
        c[i][2]=n;



    } 

    return c; 
}

}

1 个答案:

答案 0 :(得分:2)

这是使用调试器有助于调试代码的地方。

m=new double[0][0];

所以矩阵是空的。

int filx;
filx=x.length;
double [][] c=new double[filx][3];

x.length为0,因此c为空。

for(int i=0;i<m.length;i++){
    System.out.print("\n");

m.length仍为0,因此不会打印任何内容。

我建议您在调试器中逐步执行代码,以了解它在什么时候没有按预期执行。我还建议您在IDe中使用格式化程序,以使代码更易于阅读。