我正在做一个任务,我必须编写一个程序来加密和解密Caeser密码。我遇到困难的部分不是加密或解密,而是另一个需求,那就是我必须提供一个菜单,以便用户可以选择加密,解密或退出。此外,程序应该继续提示使用,直到使用选择退出。到目前为止我的代码是:Java菜单循环问题;程序循环过快?
import java.util.*;
public class CaeserShiftTester
{
public static void main (String[] args)
{
Scanner in = new Scanner(System.in);
String choice = "";
while (!choice.equalsIgnoreCase("C"))
{
System.out.println("\nPlease select an option");
System.out.println("[A] Encrypt Code");
System.out.println("[B] Decrypt Code");
System.out.println("[C] Quit");
choice = in.next();
if(choice.equalsIgnoreCase("A"))
{
System.out.println("Please enter your key:");
final int KEY = in.nextInt();
System.out.println(CaeserShiftEncryption.shiftAlphabet(KEY));
System.out.println("\nPlease enter your message:");
String message = in.nextLine();
System.out.println(CaeserShiftEncryption.encryptCode(message,KEY));
}
if(choice.equalsIgnoreCase("C"))
{
System.out.println();
}
}
}
}
我的问题是,在打印后的“新字母”到屏幕上,程序返回到开始的时候,要求用户选择A,B,或C 。使用永远不会有机会输入要加密的消息。不幸的是,我需要打印生成的新字母,并且我无法想象这里可能会出现什么问题。我希望你们能帮助我。
此外,shiftAlphabet和encryptCode方法都具有完整的功能。
回到最初应该询问用户的选择,对吧?否则,用户在加密某些内容后无法解密,反之亦然。 – Jimmt
Put System.out.println(choice);在第一个身体,看看你得到什么。 – DrinkJavaCodeJava