我该如何修复这个if-then结构,以便根据需要跳出循环?

我要解决的问题是一场杯具游戏。用户输入一个没有空格的字符串,其中包含一系列相连的A、B和C。例如"AB“或"ABBBCABA”。这个游戏是玩家移动所选字母的杯子。奖品从位置1开始,也就是最左边的奖杯。这是一张有助于可视化运动的图片。

movement picture

输入"AB“的移动示例应输出3。输入"BC”的移动示例应输出3。

我的代码给出了错误的数字,但我找不出我在逻辑上哪里出错了。

import java.io.*;

public class trik {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        int position = 1;
        if (s.length() == 1) { // A
            if (s.contains("A")) {
                System.out.println(2);
            }
            if (s.contains("B")) {
                System.out.println(1);
            }
            if (s.contains("C")) {
                System.out.println(3);
            }
        } else {
            String[] parts = s.split("");
            int i = 0;
            while (i < parts.length) {
                if (parts[i].equals("A")) {
                    if (position != 3) {
                        if (position == 1) {
                            position = 2;
                        }
                        if (position == 2) {
                            position = 1;
                        }
                    }
                }
                if (parts[i].equals("B")) {
                    if (position != 1) {
                        if (position == 2) {
                            position = 3;
                        }
                        if (position == 3) {
                            position = 2;
                        }
                    }
                }
                if (parts[i].equals("C")) {
                    if (position != 2) {
                        if (position == 1) {
                            position = 3;
                        }
                        if (position == 3) {
                            position = 1;
                        }
                    }
                }
                i++;
            }
            System.out.println(position);

        }

    }
}

转载请注明出处:http://www.intsu.net/article/20230517/1897093.html