rec*_*ons 1 java break switch-statement
如何摆脱void方法并返回切换方法?
public static void decrypt() throws FileNotFoundException {
Scanner kbrd = new Scanner(System.in);
System.out.println("Enter Key-file name: ");
String filename = kbrd.nextLine();
System.out.println("Enter Message-filename: ");
String mssgFilename = kbrd.nextLine();
String[] keyArray = loadMessage(filename);
String[] message = loadMessage(mssgFilename);
String[] cipher = xor2(message, keyArray);
String readable = showText(cipher);
System.out.println("The text:" + readable);
return;
}
Run Code Online (Sandbox Code Playgroud)
然后这是切换方法
System.out.println("Encrypt 1.");
System.out.println("Decrypt 2.");
System.out.println("Make Key 3.");
System.out.println("Quit 4.");
Scanner scan = new Scanner(System.in);
String choice = scan.nextLine();
do {
switch (choice) {
case "1":
encrypt();
break;
case "2":
decrypt();
break;
case "3":
makeKey();
break;
}
} while (choice != "4");
Run Code Online (Sandbox Code Playgroud)
问题是,无论我选择什么,它都保留在那个方法中,尽管最后返回语句,不应该让我回到切换方法吗?
能够在循环中添加另一个选择.您目前正在进入无限循环,因为choice不会改变.
String choice;
do {
choice = scanner.nextLine();
switch (choice) {
case "1":
encrypt();
break;
case "2":
decrypt();
break;
case "3":
makeKey();
break;
}
} while (!choice.equals("4"));
Run Code Online (Sandbox Code Playgroud)
注意这与被调用的方法无关; 这完全由do ... while循环调节.