有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果运行一定次数,java是否仍要生成else?

例如

else if (currentImage == nekoPics[4]) 
currentImage = nekoPics[5];

需要运行两次,所以我的猫动画抓痕两次,然后再移动到其他,这可能是最糟糕的方式,但我感兴趣的是,如果你可以有一个其他如果执行两次而不复制粘贴

else if (currentImage == nekoPics[5]) 
currentImage = nekoPics[4];

改变索引会导致循环,他会一直抓挠

谢谢你的帮助

编辑:整个代码

private void scratch(){
    for (int i = xPos; i <getWidth()/2; i+=0){
            xPos = getWidth()/2;
            // swap images

            if (currentImage == nekoPics[0]) 
                currentImage = nekoPics[1];
            else if (currentImage == nekoPics[1]) 
                    currentImage = nekoPics[2];
            else if (currentImage == nekoPics[2]) 
                    currentImage = nekoPics[4];
            else if (currentImage == nekoPics[4]) 
                currentImage = nekoPics[5];
            else 
                i+=10;

            repaint();
            pause(150)

共 (2) 个答案

  1. # 1 楼答案

    我猜你正在通过一系列图像移动,所以你可以这样做:

    else if (currentImage == nekoPics[3]) {
        currentImage = nekoPics[4];
        countdown = 5;
    } else if (currentImage == nekoPics[4]) {
        currentImage = nekoPics[5];
    } else if (currentImage == nekoPics[5]) {
        if (countdown  > 0)
            currentImage = nekoPics[4];
        else
            currentImage = nekoPics[6];
    } else if ...
    

    换句话说,当从3转换到4时,根据重复4,5序列的频率设置倒计时变量

    然后根据倒计时从5转换到46

  2. # 2 楼答案

    整个if-else逻辑是多余的。将图像按显示顺序放入有序集合(数组、列表),如下所示

     Pictures[] seq = new Pictures[] { pic1, pic2, pic3, pic3, pi2, pic4, pic5 };
    

    然后遍历集合,或者维护一个指向下一张图片的索引