我在哪里移动我的字符串?

时间:2018-03-02 21:10:25

标签: java arrays string for-loop if-statement

我必须移动String [] du = new String [ruu] ;,目前在if(dru == 1)下。问题在于,以及如何使其成为其余代码遵循它。我该如何处理?这就是我所拥有的:

import java.util.Arrays;
import java.util.Scanner;

public class Sol {
    public static void main(String[] args) {

        boolean hah = true;
        Scanner dea = new Scanner(System.in);

        do {
            System.out.println("1. Create League.");
            System.out.println("2. Look up Teams.");
            System.out.println("3. Mark Win.");
            System.out.println("4. Mark Loss.");
            System.out.println("5. Quit.");
            int dru = dea.nextInt();

            if (dru == 1) {
                System.out.println("How many Teams?");
                int ruu = dea.nextInt();
                System.out.println("Fine. Just give a name.");
                dea.nextLine();
                String[] du = new String[ruu];

                for (int i = 0; i < du.length; i++) {
                    if (i >= 1)
                        System.out.println("More are required.");
                    du[i] = (String) (dea.nextLine());
                }
                System.out.println("Teams: " + Arrays.toString(du));
                if (dru == 5 && hah == true)
                    System.out.println("Goodbye.");
                hah = false;
                if (hah == false)
                    break;
            }
        } while (hah == true);
    }

}

1 个答案:

答案 0 :(得分:0)

几个问题。

hah = false;行应缩进if(dru == 5 && hah == true)行。

您要求程序将hah设置为false(并基本上终止该程序)if(dru == 5 && hah == true)。问题是,您在if (dru == 1)部分内执行此操作,因此dru永远不能5,除非您重新分配dru。此外,这意味着Goodbye不会打印dru永远不会5,因此您的程序将终止,但不会打印Goodbye

下一个问题是,您没有询问用户是否要退出,因此没有让他们有机会输入5,以便dru = 5,这意味着您的计划赢了&#39 ; t终止(在你修复了上述缩进问题之后)。