【发布时间】:2015-04-28 04:22:28
【问题描述】:
如何跳出 void 方法并返回 switch 方法?
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;
}
然后这里是切换方法
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");
问题是,尽管最后有 return 语句,但无论我选择什么,它都会保留在该方法中,这不应该让我回到 switch 方法吗?
【问题讨论】:
-
您的代码正在执行您的要求 - 有什么问题?是否有方法阻塞?
-
您实际上并不需要
return;,一旦decrypt存在,它将返回到它被调用的位置。此外,您可能希望将菜单和choice输入放入do-while循环 -
它是如何保持的?您能否更详细地描述实际发生的情况?
-
请指定所需的行为。
-
是的,假设我选择了“decript”,我希望它执行一次,然后返回到 switch 语句以进行另一个选择,但它在完成后仍处于 decript 状态。
标签: java switch-statement break