Java 调用一个方法后,我的数组列表得到一个空值
嗨,伙计们。。我的作业代码有问题 基本上,我的任务是创建一个预订机票程序,在您选择了所需的选项并退出主菜单后,它将向您显示已确认预订机票的摘要 我遇到问题的部分在于重做选项,因为调用showRedo后我没有得到任何值 有人能帮我吗?你的表演Java 调用一个方法后,我的数组列表得到一个空值,java,arrays,methods,arraylist,Java,Arrays,Methods,Arraylist,嗨,伙计们。。我的作业代码有问题 基本上,我的任务是创建一个预订机票程序,在您选择了所需的选项并退出主菜单后,它将向您显示已确认预订机票的摘要 我遇到问题的部分在于重做选项,因为调用showRedo后我没有得到任何值 有人能帮我吗?你的表演 showMainMenu(); mainChoice = input.nextInt(); switch(mainChoice){ case 1 : showConcertCa
showMainMenu();
mainChoice = input.nextInt();
switch(mainChoice){
case 1 : showConcertCategories();
concertCategories = input.nextInt();
switch(concertCategories){
case 1 : showMusical();
musical = input.nextInt();
switch(musical){
case 1 : showMyFairLady();
myFairLady = input.nextInt();
switch(myFairLady){
case 1 : System.out.print("Please input number of tickets:");
title = "MY FAIR LADY";
date = "20/01/08";
tickets = input.nextInt();
totalPrice = 90 * tickets;
System.out.println("\nBooking Information <All concerts begin at 8pm>");
System.out.println("-----------------------------------------------");
System.out.println("Concert: MY FAIR LADY");
System.out.println("Length: 135 minutes");
System.out.println("Date: 20/01/08");
System.out.println("Number of tickets: "+tickets);
System.out.println("Price per ticket: $90.00");
System.out.println("Total: $"+fmt.format(totalPrice));
System.out.println("-----------------------------------------------");
System.out.println("<1>Confirm");
System.out.println("<2>Redo");
System.out.print("Please select your choice<1-2>:");
confirmRedo = input.nextInt();
switch(confirmRedo){
case 1 : System.out.println("\n************************************");
System.out.println("* Your ticket(s) is/are confirmed. *");
System.out.println("************************************");
confirmation[0]=""+title;
confirmation[1]=""+date;
confirmation[2]=""+tickets;
confirmation[3]=""+totalPrice;
break;
case 2 : showRedo();
break;
default: System.out.println("\nPlease select a valid choice.");
}
}
break;
default: System.out.println("\nPlease select a valid choice.");
}
break;
case 2 : showClassical();
break;
case 3 : showPopMusic();
break;
case 4 : break;
default: System.out.println("\nPlease select a valid choice.");
}
break;
case 2 : System.out.println("\nThank you for using this service.\n");
System.out.println("Concert Date Tickets Total(S$)");
System.out.println("----------- -------- --------- -----------");
System.out.println(""+confirmation[0]+" "+confirmation[1]+" "+confirmation[2]+" "+confirmation[3]);
break;
default: System.out.println("\nPlease select a valid choice.");
}
仅处理等于1的输入。您没有案例来处理输入2和输入3
您还应该考虑使用一个Java Switch语句,而不是这个讨厌的if-else梯形图
我没有得到任何价值-你这是什么意思?试着把代码减少到显示问题的最小摘录,没有人想阅读那么多代码,并为你弄清楚在你能更清楚地解释你的问题后会发生什么?具体来说,调用showRedo后我没有得到任何价值意味着什么?没有得到一个值在哪里?您希望看到什么,它与您看到的有什么不同?哇,代码太多了。你能给我们一个更简单的方法来帮助你吗?好的,我已经切换到切换案例方法,希望它能帮助你。showRedo基本上是从showConcertCategories开始一次又一次的过程,一直到我点击exit。但是,在重做之后,数组值显示为null。如果只有1-3个选项,那么语句就可以了,如果将来可能有更多项,那么切换就是最好的选择。我想问题在于嵌套的级别。我会通过拥有一个显示信息的数据库和处理每个子选项的子方法来解决这个问题。这会使很多代码干涸。@yonitdm在结构上有很多问题,但我确信这是一个java的入门类,我认为在这一点上,这对他来说没有帮助。在回答之前,我权衡了一下,因此将其作为评论而不是回答。对初学者来说,使用干代码的好处是,它使跟踪和调试比一堆文本更容易。如果没有其他更改,更改为开关将不会改进代码。从年轻开始我说:我已经切换到切换案例,但我不太明白你的解决方案…@shinichi你的showRedo方法现在似乎从你的问题中消失了。但我的观点是,在showRedo方法中,除了值1之外,没有处理任何输入。如果用户输入2或3,则没有代码对这些值进行操作。一切都会失败。
concertCategories = input.nextInt();
if(concertCategories==1){