好吧我又回来了,我遇到了一堵新墙。我试图找出如何与ticketInput()
分手并返回我的mainInputMenu()
。这不是我的整个代码,而是为了收集我想要做的事情的想法,我认为这足以理解我的问题。
主要方法----
public class Tickets {
public static void main(String[] args) {
mainInputMenu();
}
private static void mainInputMenu() {
Machine whichMachine = new Machine();
int machineNumber = Machine.readInput();
while ( machineNumber == 1 ) {
machineOne ( machineNumber );
}
while ( machineNumber == 2 ) {
Machine machineTwo = new Machine();
}
while ( machineNumber == 3 ) {
System.exit(0);
}
}
private static void machineOne(int machineNumber) {
Machine.option = 1;
Machine.writeOutput();
Machine.ticketInput();
}
}
在课程档案中-------
public static void ticketInput() {
Scanner keyboard = new Scanner ( System.in );
String ticketCounter;
int counter = 0;
do {
System.out.printf ( "Your choice: " );
ticketCounter = keyboard.next();
if ( ticketCounter.matches ( "[0-9]+" ) ) {
counter = Integer.parseInt ( ticketCounter );
}
if ( counter < 1 || counter > 11 ) {
System.out.println ( "Try again!" );
}
} while ( counter < 1 || counter > 11 );
switch (counter) {
case 1:
rSelected = "Uptown";
break;
case 2:
rSelected = "Downtown";
break;
case 3:
aSum = aSum + 1;
break;
case 4:
if ( aSum > 0 ) {
aSum = aSum - 1;
}
else {
System.out.println ( "Cannot go below 0." );
}
break;
case 5:
cSum = cSum + 1;
break;
case 6:
if ( cSum > 0 ){
cSum = cSum -1;
}
else {
System.out.println ( "Cannot go below 0." );
}
break;
case 7:
creditSum = creditSum + 0.25;
break;
case 8:
creditSum = creditSum + 1.00;
break;
case 9:
creditSum = creditSum + 2.00;
break;
case 10:
System.out.println ( "-----------------\n"
+ "YOU GOT YOUR TICKET!!!\n"
+ "-----------------");
System.exit(0);
case 11:
//Return to main menu
default:
break;
}
我感谢任何可以指导我解决这个问题的意见。我觉得这似乎是一个简单的陈述,我似乎无法从互联网中挖掘出来。
答案 0 :(得分:0)
如果您从函数return
返回调用函数。
对System.exit(0)
的调用将终止您的申请。
因此,请将System.exit(0)
替换为return;
。
你必须添加一个循环来连续获取main方法中的菜单和其他功能,如下所示:
public static void main(String[] args) {
while(true) {
// Add some breaking option here.
mainInputMenu();
}
}
答案 1 :(得分:0)
您可以像这样更改mainInputMenu()
private static void mainInputMenu()
{
Machine whichMachine = new Machine();
int machineNumber = Machine.readInput();
do
{
if (machineNumber == 1) machineOne (machineNumber);
else if (machineNumber == 2) Machine machineTwo = new Machine();
else if (machineNumber == 3) System.exit(0);
int machineNumber = Machine.readInput();
}while (machineNumber > 0 && machineNumber < 4);
}
在这里你可以重复运行machineOne()
现在您可以从ticketInput()
返回case 11: return;