Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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 删除条件语句_Java_If Statement_Methods_Conditional - Fatal编程技术网

Java 删除条件语句

Java 删除条件语句,java,if-statement,methods,conditional,Java,If Statement,Methods,Conditional,我想知道如何删除条件语句并用方法替换它。对于没有侦听器的代码,我可以这样做。但是这个有侦听器事件(arg0),这让我感到困惑。仅供参考,此代码位于主类中,我想将这些代码从主类中删除 谢谢你的帮助 @Override public void onMotionSensingEvent( MotionSensingEvent arg0) { double gradient = 1.38; double speed; float testpitch = 0; test

我想知道如何删除条件语句并用方法替换它。对于没有侦听器的代码,我可以这样做。但是这个有侦听器事件(arg0),这让我感到困惑。仅供参考,此代码位于主类中,我想将这些代码从主类中删除

谢谢你的帮助

@Override
public void onMotionSensingEvent( MotionSensingEvent arg0) {

    double gradient = 1.38;
    double speed;

    float testpitch = 0;
    testpitch = arg0.getOrientation().getPitch();

    float testroll = 0;
    testroll = arg0.getOrientation().getRoll();

    if (testroll > 16 && flyingControl)
    {
        speed = gradient*testroll-22.1;
        System.out.println("kanan = " + speed);
        ardrone.goRight(speed);
    }
    else if (testroll < (-24) && flyingControl)
    {
        speed = gradient*testroll*-1 - 22.1;
        System.out.println("kiri = " + speed);
        ardrone.goLeft(speed);
    }
    else if (testpitch < (-20) && flyingControl)
    {
        System.out.println("go up");
        ardrone.up();
    }
    else if (testpitch > 20 && flyingControl)
    {
        System.out.println("go down");
        ardrone.down();
    }
    else
    {
        ardrone.stop();
    }

}
@覆盖
MotionSensingEvent上的公共无效(MotionSensingEvent arg0){
双梯度=1.38;
双速;
浮动测试螺距=0;
testpitch=arg0.getOrientation().getPitch();
浮动测试辊=0;
testroll=arg0.getOrientation().getRoll();
如果(testroll>16&&flyingControl)
{
速度=梯度*testroll-22.1;
System.out.println(“kanan=“+速度”);
阿德隆·戈赖特(速度);
}
否则如果(试验滚转<(-24)和飞行控制)
{
速度=坡度*试验辊*-1-22.1;
System.out.println(“kiri=“+速度”);
阿尔德隆·戈尔夫特(速度);
}
否则如果(测试螺距<(-20)和飞行控制)
{
System.out.println(“上升”);
阿德隆;
}
否则如果(测试螺距>20和飞行控制(&F)
{
System.out.println(“向下”);
阿德隆·唐;
}
其他的
{
停止();
}
}

您必须根据testroll和testpitch的值做出决定,因此我想您无论如何都必须测试条件。但是如果你想用一个单独的方法进行测试,你可以使用一些签名,比如
void test(float-pitch,float-roll)
replicate,你可以将它嵌套在其中,并使用“if(flyingControl)”来移除if语句中的一定数量的冗余。