gpt4 book ai didi

java - 多方法程序中的控制流

转载 作者:行者123 更新时间:2023-12-01 14:04:41 25 4
gpt4 key购买 nike

我正在编写一个简单的 Java 程序,以熟悉方法,记录一个人见过的人。例如,如果我在伦敦遇到艾莉森,我会记录以下内容(格式:姓名、性别、时间、地点):

艾莉森,F,2013 年 4 月,伦敦

程序构建如下:

向用户提供不同的机会:

  1. 记录人员
  2. 搜索所有名为 [name] 的人
  3. 搜索所有遇见过的人[地点]
  4. 获取可用命令的列表
  5. 退出

这是我的代码的框架:

    public void chooseCommand() throws FileNotFoundException {
System.out.println("Enter command: ");
text = input.next();
myCommand = Integer.parseInt(text);

while (myCommand !=5) {
if (myCommand == 1) {
writeToFile(); //Log new person
}
// Search for person type
else if (myCommand == 2) {
searchFor(); // Search for person by name
}
// Search for place
else if (myCommand == 3) {
searchFor(); // Search for person by place
}
// help
else if (myCommand == 4) {
showCommands(); // get a list of available commands
}
else if (myCommand == 5) {
exit();
}
// default
else {
System.out.println("Command not found");
}
}
}

这工作得很好。但是,在我选择五个选项之一(登录新人、搜索姓名、搜索地点、帮助、退出)后,我想返回到 ChooseCommand() 方法,以便再次显示相同的选项,而不是让最初选择的方法无限循环。也就是说,在我登录一个新人后,我希望能够获得新的选项,而不是必须永远登录新人,而不杀死程序。

    // REGISTER
public void writeToFile() {
// Write to file
try {
BufferedWriter output = new BufferedWriter(new FileWriter(file, true));
System.out.println("Enter sighting: ");

for (int i = 0; i < personBlank.length; i++) {
System.out.println(personInfo[i] + ": ");
personEntry = input.next();
personBlank[i] = personEntry;
}

// change to toString() method
observed = personBlank[0] + "," + personBlank[1] + "," + personBlank[2] + "," + personBlank[3];

if (observed.equals(escape)) {
exit();
}
else {
output.write(observed); // log new person
output.newLine();
output.close();
}
back();
}
catch (IOException e){
e.printStackTrace();
}
}

非常感谢对此的任何帮助!

最佳答案

public void someMethod() {
while(isRunning) {

chooseCommand();

}
}

然后在chooseCommand()中失去循环,使选项5设置isRunning = false而不是exit(),并使用switch语句来美观。

例如

public void chooseCommand() throws FileNotFoundException {
System.out.println("Enter command: ");
text = input.next();
myCommand = Integer.parseInt(text);

switch (myCommand) {
case 1:
writeToFile(); //Log new person
break;

case 2:
// Search for place
break;

case 3:
searchFor(); // Search for person by place
break;

// help
case 4:
showCommands(); // get a list of available commands
break;

case 5:
this.isRunning = false;
break;

default:
System.out.println("Command not found");

}
}

关于java - 多方法程序中的控制流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19008019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com