所以,说实话,这应该是一个非常简单的循环。为了澄清,这就是我希望它的工作方式。我问用户“请输入要验证的ISBN号”。用户输入号码后,会询问“你想输入另一个号码吗?”如果用户输入“是”,则会再次提示用户输入另一个号码。 “请输入一个ISBN号进行验证”这将继续,直到用户输入“否”。希望这是有道理的,这是我到目前为止所做的:
System.out.println("Press 1 to enter a list of ISBN numbers to verify. ");
System.out.println("Press 2 to convert an ISBN-10 number to an ISBN-13 number. ");
System.out.println("Press 3 to quit. ");
choice = input.nextInt();
if(choice == 1){
do{
//Get the ISBN
System.out.println("Please Enter an ISBN number with dashes to verify. ");
isbns.add(input.nextLine());
//loops till answer is yes or no
while(isbns.add(input.nextLine()))
System.out.println("Would you like to add another ISBN?");
ans = input.nextLine();
if(ans.equalsIgnoreCase("N"))
break;
}while(!(ans.equalsIgnoreCase("N")));
input.close();
当我输入是或否时,我现在所拥有的往往是什么都不做。
答案 0 :(得分:0)
对于一个非常简单的问题,你做了一个非常复杂的解决方案。为什么不使用简单的while循环?
System.out.println("Press 1 to enter a list of ISBN numbers to verify. ");
System.out.println("Press 2 to convert an ISBN-10 number to an ISBN-13 number. ");
System.out.println("Press 3 to quit. ");
choice = input.nextInt();
//A token to keep track of user's choice to continue the program
String userChoise = "Y";
if(choice == 1){
while(userChoise.equalsIgnoreCase("Y")) {
//Get the ISBN
System.out.println("Please Enter an ISBN number with dashes to verify. ");
isbns.add(input.nextLine());
System.out.println("Would you like to add another ISBN?");
userChoise = input.nextLine();
}
input.close();
}
答案 1 :(得分:0)
只是对@Ratul Bin Tazul回答的一个小修改。我确实支持使用do while循环,因为从案例中可以清楚地看到,至少需要在循环内执行代码。
您需要注意的另一件事是在调用nextInt()之后使用nextLine()。这是因为nextInt并没有消费' \ n'在上一次输入结束时,这就是为什么你同时打印两行的原因。
Scanner input = new Scanner(System.in);
System.out.println("Press 1 to enter a list of ISBN numbers to verify. ");
System.out.println("Press 2 to convert an ISBN-10 number to an ISBN-13 number. ");
System.out.println("Press 3 to quit. ");
choice = input.nextInt();
input.nextLine();
//A token to keep track of user's choice to continue the program
String userAnswer;
if(choice == 1){
do {
//Get the ISBN
System.out.println("Please Enter an ISBN number with dashes to verify. ");
isbns.add(input.nextLine());
System.out.println("Would you like to add another ISBN?");
userAnswer = input.nextLine();
}while( !userAnswer.equalsIgnoreCase("N"));
input.close();
}