考虑用户输入时,JAVA在数组中重新组织While循环。
我的程序基本上允许用户输入存储在成绩册(数组)中的成绩(元素)。用户还可以选择更改成绩册(数组)中的成绩(元素) 我的问题是,一旦while循环循环,用户被要求“进行更多更改?输入是或否”如果我输入是,则用户要求更改哪个年级,允许替换该年级,并打印修改后的成绩册。但是,如果我输入“否”,则只打印成绩册。如果用户输入no,是否有办法让程序打印“再见!”(表示程序结束)?我相信我应该重新组织我的代码,并用boolean=false设置while循环?但我不知道如何开始 任何帮助都将不胜感激。多谢各位考虑用户输入时,JAVA在数组中重新组织While循环。,java,arrays,while-loop,boolean,Java,Arrays,While Loop,Boolean,我的程序基本上允许用户输入存储在成绩册(数组)中的成绩(元素)。用户还可以选择更改成绩册(数组)中的成绩(元素) 我的问题是,一旦while循环循环,用户被要求“进行更多更改?输入是或否”如果我输入是,则用户要求更改哪个年级,允许替换该年级,并打印修改后的成绩册。但是,如果我输入“否”,则只打印成绩册。如果用户输入no,是否有办法让程序打印“再见!”(表示程序结束)?我相信我应该重新组织我的代码,并用boolean=false设置while循环?但我不知道如何开始 任何帮助都将不胜感激。多谢各位
System.out.println("Make changes? Enter Yes or No");
String makeChanges = input.next();
if (makeChanges.equals("no")) {
System.out.println("Good bye!");
}
while (makeChanges.equalsIgnoreCase("Yes")) {
// Ask user if what grade they would like to change
//int index = NumberReader.readPositiveInt(input, "Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input", index);
int index = NumberReader.readCappedPositiveInt(input, "Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input", numOfGrades);
System.out.println("Enter grade (limit to two decimal places)" + ": ");
// offset the index by one
mogrades[index - 1] = NumberReader.readPositiveDouble(input, "Enter grade " + index + " :",
"Invalid data entered");
System.out.println("The Grade book contains: ");
printArray(mogrades);
System.out.println("Make more changes? Enter Yes or No");
makeChanges = input.next();
System.out.println(makeChanges);
System.out.println("The Grade book contains: ");
printArray(mogrades);
}
}
Break语句用于退出循环。您可以在while循环中尝试以下操作:
if (makeChanges.equalsIgnoreCase("No")) {
System.out.println("Good Bye!");
break;
}
如果要退出整个程序,请使用System.exit(0)
下面是一个简单的程序,演示了这将如何工作:
import java.util.Scanner;
public class Simple {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String makeChanges = "Yes";
while (makeChanges.equalsIgnoreCase("Yes")) {
System.out.println("Make more changes? Enter Yes or No:");
makeChanges = input.next();
if (makeChanges.equalsIgnoreCase("No")) {
System.out.println("Good Bye!");
System.exit(0);
}
}
}
}
下面是命令行的输出:
daniel@4.3:StackOverflow$javac Simple.java
daniel@4.3:StackOverflow$java Simple
做更多的改变?输入是或否:
对
做更多的改变?输入是或否:
对
做更多的改变?输入是或否:
没有
再见 它确实退出了程序。然而,它并没有读到“再见”的信息。在makeChanges=input.next()之后,我确实将它放在了while循环中;你能重新发布你的更改以便我能看到新代码吗?它应该显示“再见!”,如果你复制并粘贴了我在上面输入的代码,那么就退出。你不能也使用
return
退出程序?返回代码>也可以。我通常使用System.exit(1)
退出程序,然后返回代码>退出方法。@Daniel.Schroeder-好的。我把它作为编辑添加到你的程序中。让我知道我是否应该张贴整个计划,如果这将提供更多的细节。
import java.util.Scanner;
public class Simple {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String makeChanges = "Yes";
while (makeChanges.equalsIgnoreCase("Yes")) {
System.out.println("Make more changes? Enter Yes or No:");
makeChanges = input.next();
if (makeChanges.equalsIgnoreCase("No")) {
System.out.println("Good Bye!");
System.exit(0);
}
}
}
}