java if/else语句命令字符串

qzwqbdag  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(417)

所以我是一个新的编码和采取的课程,它现在。我试图让我写的代码像一个字符串,使海龟图像移动或绘制的命令的基础上,我使用了for循环,但每当我输入命令字符串,它执行一个奇怪的顺序运动。

int stringLength = commands.length();

for(int i=0; i<stringLength ;i++) {
    if (thigny.contains("F")) {

        rabbit.forward(move);

    } else if (thigny.contains("f")) {

        rabbit.penUp();
        rabbit.forward(move);

    } else if (thingy.contains("+")) {
        rabbit.turnLeft();
    } else if (thingy.contains("-")) {
        rabbit.turnRight();

    }
}
vzgqcmou

vzgqcmou1#

在循环的每次迭代中,检查字符串是否包含某些字符,无论其位置如何。相反,您应该遍历字符串的字符并逐个检查它们。例如。:

for(int i = 0; i < stringLength; i++) {
    char ch = commands.charAt(i);
    if (ch == 'F') {
        rabbit.forward(forwardPixels);
    } else if (ch == 'f') {
        rabbit.penUp();
        rabbit.forward(forwardPixels);
    } else if (ch == '+') {
        rabbit.turnLeft();
    } else if (ch == '-') {
        rabbit.turnRight();
    }
}
ohtdti5x

ohtdti5x2#

而不是 contains() 方法尝试使用 commands.charAt(i) . contains方法如果所提供参数的字符串中的任何位置包含,则返回true。这就是为什么你的兔子只做转发我猜。
例子:

for(int i=0; i<stringLength ;i++) {
            if (commands.charAt(i)=='F')) {

                rabbit.forward(forwardPixels);

            } else if (commands.charAt(i)== 'f')) {

                rabbit.penUp();
                rabbit.forward(forwardPixels);
            }
            // replace other in same way

            ....

相关问题