我该如何在while循环中重复声明“输入标记或等级”。在这种情况下,每次控制都返回到循环的开始。我想重复输入标记,直到用户要离开?
public class Marks2 {
public static void main(String args[]){
Scanner s=new Scanner(System.in);
System.out.println("Here is Subject list");
System.out.println("1-Physics");
System.out.println("2-Math");
System.out.println("3-computer");
boolean input=true;
while (input){
System.out.println("Enter subject number here");
String sub=s.nextLine();
if(sub.equals("1")) {
System.out.println("Physics");
System.out.println("");
System.out.println("Enter marks /Enter change for change /Enter exit for leave");
String change1 = null;
String change2 = null;
int marks = 0;
try {
change1 = s.nextLine();
marks = Integer.parseInt(change1);
} catch (Exception e) {
System.out.println("Please enter only string value");
change2 = s.nextLine();
if (change2.equals("change")) {
continue;
} else if (change2.equals("exit")) {
System.exit(0);
}
}
if(marks<40){
System.out.println("Student is fail");
}
else if(marks==40){
System.out.println("Student is fail he need more practice");
}
else if(marks<70){
System.out.println("need more practice but also good");
}
else if(marks==70){
System.out.println("Good");
}
else if(marks<90){
System.out.println("Good but also Excellent");
}
else if(marks==90){
System.out.println("Excellent");
}
else if(marks<100){
System.out.println("Outstanding");
}
else if(marks==100){
System.out.println("Good but also excellent");
}
else if(change1.equals("change")){
continue;
}
else if(change2.equals("exit")){
System.exit(0);
}
else {
System.out.println("");
}
continue;
}
}
}
}
继续控制后,进入循环开始并要求再次输入主题。在用户想离开之前是否可以输入成绩?
问题来源:Stack Overflow
您需要在第一个循环中添加另一个while循环,如果我理解正确的话,您想在输入更改后更改主题吗?如果是这样,那么它将起作用:
public static void main(String args[])
{
Scanner s = new Scanner(System.in);
System.out.println("Here is Subject list");
System.out.println("1-Physics");
System.out.println("2-Math");
System.out.println("3-computer");
setSubject:
while (true)
{
System.out.println("Enter subject number here");
String sub = s.nextLine();
if (sub.equals("1"))
{
System.out.println("Physics");
int marks = 0;
while (true)
{
System.out.println("Enter marks /Enter change for change /Enter exit for leave");
if (s.hasNextInt())
{
marks = s.nextInt();
s.nextLine();
} else
{
String command = s.nextLine();
if (command.equalsIgnoreCase("exit")) break setSubject;
else if (command.equalsIgnoreCase("change")) continue setSubject;
else
{
System.out.println("Please enter a valid option");
continue;
}
}
if (marks < 40)
{
System.out.println("Student is fail");
} else if (marks == 40)
{
System.out.println("Student is fail he need more practice");
} else if (marks < 70)
{
System.out.println("need more practice but also good");
} else if (marks == 70)
{
System.out.println("Good");
} else if (marks < 90)
{
System.out.println("Good but also Excellent");
} else if (marks == 90)
{
System.out.println("Excellent");
} else if (marks < 100)
{
System.out.println("Outstanding");
} else if (marks == 100)
{
System.out.println("Good but also excellent");
} else
{
System.out.println("");
}
}
}
}
}
样品运行
Here is Subject list
1-Physics
2-Math
3-computer
Enter subject number here
1
Physics
Enter marks /Enter change for change /Enter exit for leave
change
Enter subject number here
1
Physics
Enter marks /Enter change for change /Enter exit for leave
50
need more practice but also good
Enter marks /Enter change for change /Enter exit for leave
60
need more practice but also good
Enter marks /Enter change for change /Enter exit for leave
exit
Process finished with exit code 0
通过一个while循环:
public static void main(String args[])
{
Scanner s = new Scanner(System.in);
System.out.println("Here is Subject list");
System.out.println("1-Physics");
System.out.println("2-Math");
System.out.println("3-computer");
String subject = "";
int marks = 0;
while (true)
{
if (subject.isEmpty())
{
System.out.println("Enter subject number here");
subject = s.nextLine();
}
if (subject.equals("1"))
{
System.out.println("Physics");
System.out.println("Enter marks /Enter change for change /Enter exit for leave");
if (s.hasNextInt())
{
marks = s.nextInt();
s.nextLine();
} else
{
String command = s.nextLine();
if (command.equalsIgnoreCase("exit")) break ;
else if (command.equalsIgnoreCase("change")) {
subject = "";
continue ;
}
else
{
System.out.println("Please enter a valid option");
continue;
}
}
if (marks < 40)
{
System.out.println("Student is fail");
} else if (marks == 40)
{
System.out.println("Student is fail he need more practice");
} else if (marks < 70)
{
System.out.println("need more practice but also good");
} else if (marks == 70)
{
System.out.println("Good");
} else if (marks < 90)
{
System.out.println("Good but also Excellent");
} else if (marks == 90)
{
System.out.println("Excellent");
} else if (marks < 100)
{
System.out.println("Outstanding");
} else if (marks == 100)
{
System.out.println("Good but also excellent");
} else
{
System.out.println("");
}
marks = 0;
}
}
}
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。