切换案例算法Java问题(需要新的while循环吗?)

问题描述 投票:1回答:1

我正在尝试根据我的数组值运行switch语句。

我需要进行一个while循环,遍历整个数组,如果数组位value = 0我需要它在哪里运行case 0并且如果位value = 1我需要它来运行case 1

我需要运行while循环,直到完成遍历数组值和相应的大小写转换函数为止

我正在处理的代码:

        Scanner scan = new Scanner(System.in);
        System.out.println("What position do you want the top card to be moved to?");
        System.out.println("Enter \"1\", \"2\", \"3\", \"4\" or \"5\"");
        int i = scan.nextInt();
        int in = i -1;
        //System.out.println(i);
        String binaryString = Integer.toBinaryString(in);
        System.out.println(binaryString);
        int foo = Integer.parseInt(binaryString, 2);
        System.out.println(foo);

        String[] array = binaryString.split("\\|", -1);
            System.out.println(Arrays.toString(array));


            switch (foo) {
            case 0:
            cardForceOutShuffle();
            index = 51;
            break;
            case 1:
            cardForceInShuffle();
            index = 51;
            break;
            }


请帮助。

java arrays while-loop switch-statement
1个回答
0
投票

假设很多,这就是我想出的。请更精确地回答您的问题。

我将自己的意见作为对某些代码的注释。

Scanner scan = new Scanner(System.in);
System.out.println("What position do you want the top card to be moved to?");
System.out.println("Enter \"1\", \"2\", \"3\", \"4\" or \"5\"");
int i = scan.nextInt();
int in = i - 1; // Unnecessary

String binaryString = Integer.toBinaryString(in); // Use i-1 directly
char[] charArray = binaryString.toCharArray(); // Since you need each bit you dont need String.split. Just convert to char[]

for (int j = 0; j < charArray.length; j++) {
    switch (charArray[j]) { // This switch is actually useless, since both cases do the same thing.
    case '0':
        cardForceOutShuffle();
        index = 51; // What is index?
        break;
    case '1':
        cardForceOutShuffle();
        index = 51;
        break;
    }
}
scan.close(); // Close your resources if they are not needed anymore.
© www.soinside.com 2019 - 2024. All rights reserved.