我必须移动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);
}
}
几个问题。
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
,意味着你的程序不会终止(在你修复了上述缩进问题之后)。