我的目标是为出勤模块创建一个菜单。我想要用户的两条信息,学生的部分和部门编号。例如,他的部分可以是A,部分编号可以是3.除非输入的这些值都正确,否则我的程序无法继续。所以我决定创建一个菜单,它将一直运行,直到没有输入正确的数据。
注意: - 变量dummy是Student类的对象,我用它来检查输入的数据是否有效。如果您认为错误与这些方法有某些联系,那么请告诉我。我会做一个编辑。
System.out.println("Welcome to the Attendance Module");
int str=0;
String f="";
Student dummy=new Student();
int flag=1;
while(flag==1)
{
System.out.println("Please enter the section whose Attendance you would like to mark:A,B,C or D");
System.out.println("Note that Input is case sensitive");
f=bw.readLine();
if(dummy.valid_section(f))// If the input of the section by the user is Valid
{
System.out.println("Enter the Section number");//Can be 1,2,3,4 or 5
str=Integer.parseInt(bw.readLine());
if(dummy.valid_stream(str))// If the input of the section number by the user is Valid
{ flag=0;
break; //Both inputs are correct
}
else
flag=1; // When the Section is correct but the Section number is incorrect
}
else
{System.out.println("Invalid entry. Please try again by pressing 1. Otherwise,press 0 to quit");
flag=Integer.parseInt(bw.readLine());
}
}
当我运行此程序时,循环不会终止。我不明白为什么?我已经放置了break语句并在需要的地方更改了flag的值。
根据用户的建议,我已经包含了在此程序中调用的Student类的两种方法。它们如下:
class Student
{ // Some code...
boolean valid_form(String x)
{
if((x.equals("A"))||(x.equals("B"))|(x.equals("C"))||(x.equals("D")))
{ return true;
}
else
return false;
}
boolean valid_stream(int n)
{ if(stream>=1&&stream<=5)
{ return true;
}
else
return false;
}