Java:仅当选择了右菜单项时,才通过arraylist继续迭代
我正在尝试创建一个控制台应用程序,每次选择正确的菜单项时,它都会遍历一列美食创意。问题是,我似乎无法在每次选择正确的菜单项时继续迭代,它只是重新启动循环Java:仅当选择了右菜单项时,才通过arraylist继续迭代,java,loops,arraylist,console-application,Java,Loops,Arraylist,Console Application,我正在尝试创建一个控制台应用程序,每次选择正确的菜单项时,它都会遍历一列美食创意。问题是,我似乎无法在每次选择正确的菜单项时继续迭代,它只是重新启动循环 Scanner in = new Scanner(System.in); ArrayList<String> meals = new ArrayList<String>(); meals.add("pasta"); meals.add("potatoes"); meals.add("pork"); String sele
Scanner in = new Scanner(System.in);
ArrayList<String> meals = new ArrayList<String>();
meals.add("pasta");
meals.add("potatoes");
meals.add("pork");
String select = "";
while(!select.equals("q")){
System.out.println("What would you like to do?");
System.out.println("\t 1. See next suggestion.");
System.out.println("\t 2. <Another option>");
System.out.println("\t 3. <Another option>");
select = in.next();
switch(select){
case "1":
//Here's where the problem is:
int nextIdea = 0;
while(){
System.out.println("\tToday: " + meals.get(nextIdea));
nextIdea++;
break;
}
System.in.read();
break;
}
}
Scanner-in=新的扫描仪(System.in);
ArrayList=新建ArrayList();
膳食。添加(“意大利面”);
食物。添加(“土豆”);
膳食。添加(“猪肉”);
字符串select=“”;
而(!select.equals(“q”)){
System.out.println(“您想做什么?”);
System.out.println(“\t 1.见下一建议”);
System.out.println(“\t2”);
System.out.println(“\t3”);
select=in.next();
开关(选择){
案例“1”:
//问题就在这里:
int-nextIdea=0;
while(){
System.out.println(“\tToday:+fines.get(nextIdea));
nextIdea++;
打破
}
System.in.read();
打破
}
}
用户选择显示每日选择后,应显示列表中的第一项,然后返回“您想做什么”菜单,然后用户下次选择菜单中的选项1时,应显示菜单中的下一项,但会重新启动循环。我理解这是因为每次循环执行之前计数器变量(“nextIdea”)都设置为零,但如何让它记住上次使用的arrayList索引号,然后在用户下次选择查看每日膳食时使用该索引号。只有在浏览完列表中的所有项目后,列表才应重置为0
任何帮助都将不胜感激,谢谢 首先,在while循环之外实例化nextIdea,如您所述 然后,包含一个简单的if语句,用于检查nextIdea是否已到达末尾,如下所示:
while(true)
{
if (nextIdea < meals.size())
{
System.out.println("\tToday: " + meals.get(nextIdea));
nextIdea++;
}
else
{
nextIdea = 0;
}
break;
}
while(true)
{
if(nextIdea
您在while循环中没有条件,所以我假设您的意思是“true”,这意味着它将无限运行,直到中断
虽然从技术上讲,这里的循环并没有真正起到任何作用,因为它只运行了一次,然后就爆发了,所以您可以像这样摆脱它:
if (nextIdea < meals.size())
{
System.out.println("\tToday: " + meals.get(nextIdea));
nextIdea++;
}
else
{
nextIdea = 0;
}
if(nextIdea
我认为你需要仔细考虑你真正想要实现的目标,以及实现这一目标的最佳方式是什么
请随意提问。首先,在while循环之外实例化nextIdea,如您所述 然后,包含一个简单的if语句,用于检查nextIdea是否已到达末尾,如下所示:
while(true)
{
if (nextIdea < meals.size())
{
System.out.println("\tToday: " + meals.get(nextIdea));
nextIdea++;
}
else
{
nextIdea = 0;
}
break;
}
while(true)
{
if(nextIdea
您在while循环中没有条件,所以我假设您的意思是“true”,这意味着它将无限运行,直到中断
虽然从技术上讲,这里的循环并没有真正起到任何作用,因为它只运行了一次,然后就爆发了,所以您可以像这样摆脱它:
if (nextIdea < meals.size())
{
System.out.println("\tToday: " + meals.get(nextIdea));
nextIdea++;
}
else
{
nextIdea = 0;
}
if(nextIdea
我认为你需要仔细考虑你真正想要实现的目标,以及实现这一目标的最佳方式是什么
请随意提问。您需要将nextIdea索引移出第一个循环。当用户选择“查看下一个建议”时,您也不必重复列表-您只需显示下一个想法:
int nextIdea = 0;
while(!select.equals("q")){
System.out.println("What would you like to do?");
System.out.println("\t 1. See next suggestion.");
System.out.println("\t 2. <Another option>");
System.out.println("\t 3. <Another option>");
select = in.next();
switch(select){
case "1":
System.out.println("\tToday: " + meals.get(nextIdea));
nextIdea++;
System.in.read();
break;
}
}
您需要将nextIdea索引移出第一个循环。当用户选择“查看下一个建议”时,您也不必重复列表-您只需显示下一个想法:
int nextIdea = 0;
while(!select.equals("q")){
System.out.println("What would you like to do?");
System.out.println("\t 1. See next suggestion.");
System.out.println("\t 2. <Another option>");
System.out.println("\t 3. <Another option>");
select = in.next();
switch(select){
case "1":
System.out.println("\tToday: " + meals.get(nextIdea));
nextIdea++;
System.in.read();
break;
}
}
while()->while中的条件是什么。语法错误?while()->while中的条件是什么。语法错误?谢谢!!这是一个很容易解决的问题,我从来没有想过。非常感谢。谢谢!!这是一个很容易解决的问题,我从来没有想过。非常感谢你。