我该如何修复这个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