我有下一个问题。我的程序具有以下结构:
loadContext();
showCategories(input);
showProjects(input);
showdetails();
在每一步中,我作为用户都能够跳转到上一步。例如,我按0并且程序返回到previos步骤。按1 - 程序从头开始。 Java中是否有任何工具可以达到特定的目的?
修改 我这里有控制台应用程序。主要方法如下:
loadContext();//Loads categories
showCategories(input);//shows available categories and ask for which category to show
showProjects(input);// shows all projects inside selested category and select which project to show in details
showdetails();//show selected project
现在我想设置选项。例如,在 showProjects(输入)中输入0并再次查看类别,选择它并查看类别。在 showdetails()中选择0并返回显示类别,选择一个,依此类推。
答案 0 :(得分:0)
您可以这样做:
用另一种方法包裹所有四种方法:
private void programStart(){
loadContext();
showCategories(input);
showProjects(input);
showdetails();
}
然后有一个像这样的方法:
private void processUserInput(int selOption) {
if(selOption == 0){
showCategories();
}
else if(selOption == 1){
programStart();
}
else{
System.out.println("Unsupported option");
}
}
在您希望使用此选项的每种方法的末尾:
一个。用户阅读选项
湾使用输入
processUserInput(input)
醇>
答案 1 :(得分:0)
while循环中的switch语句怎么样?使用户能够选择要跳转到的步骤。这是任何语言的工具,而不仅仅是Java,可以达到任何特定点。
我已经使用了java.util.Scanner,因为你希望它是一个控制台应用程序,尽管在2015年我们倾向于使用图形用户界面或网页来完成这项工作:
if (!String.IsNullOrWhiteSpace(form["contactemail"]))
{
string contactemail = form["contactemail"];
IList<int> bookingids = bookings.Select(x => x.bookingid).ToList();
IQueryable<contact> con = (from y in db.bookingscontacts where bookingids.Contains(y.bookingid) select y.contact);
//EDIT: I hadn't included the email filter...
IQueryable<contact> conmatches = (from c in con where c.email1.Contains(contactemail) select c);
IList<int> contactids = conmatches.Select(x => x.contactsid).ToList();
bookings = (from r in bookings from c in db.bookingscontacts where contactids.Contains(c.contactsid) && bookingids.Contains(r.bookingid) select r);
}