Java 如何重复整个程序直到手动终止?
我的代码运行良好,除了我应该询问用户是否愿意退出程序的部分。这是一个简单的y/n,如果输入'n',则应触发整个程序重复,并在输入'y'时终止。我知道我需要使用while循环,但我就是不知道我需要如何在代码中编写它,以便它像预期的那样工作Java 如何重复整个程序直到手动终止?,java,repeat,Java,Repeat,我的代码运行良好,除了我应该询问用户是否愿意退出程序的部分。这是一个简单的y/n,如果输入'n',则应触发整个程序重复,并在输入'y'时终止。我知道我需要使用while循环,但我就是不知道我需要如何在代码中编写它,以便它像预期的那样工作 import java.util.*; public class MilitaryTime { public static void main (String [] args) { Scanner in = new Sc
import java.util.*;
public class MilitaryTime
{
public static void main (String [] args)
{
Scanner in = new Scanner(System.in);
int hour1, minute1, hour2, minute2;
System.out.print("Please enter the first time: ");
int time1 = in.nextInt();
System.out.println();
hour1 = time1 / 100;
minute1 = time1 % 100;
System.out.print("Please enter the second time: ");
int time2 = in.nextInt();
System.out.println();
hour2 = time2 / 100;
minute2 = time2 % 100;
System.out.println("Time elapsed: " + (Math.abs(hour1 - hour2) + " Hours, " + (Math.abs(minute1 - minute2) + " Minutes \n")));
System.out.print("Do you want to quit? (y/n): ");
String answer = in.next();
while (answer != "n")
{
}
}
}
在此之前,请重新运行main方法
while (answer.equals("n")) // comment by drewmoore; its helpfull for strings..
{
// you said, program should repeat if n is pressed.
// so, if answer is equal to n then execute the main function.
main();
}
这将一直执行,直到用户按下其他按钮
其次,您不需要在循环时使用
。这也可以通过来实现。您可能应该(至少)将代码分为两种不同的方法,但我将尝试指出一种方法,以最少的更改实现您想要的:
public static void main (String [] args)
{
String answer = null; // you have no answer yet...
do { // ... but you want to execute your stuff at least once
Scanner in = new Scanner(System.in);
int hour1, minute1, hour2, minute2;
System.out.print("Please enter the first time: ");
int time1 = in.nextInt();
System.out.println();
hour1 = time1 / 100;
minute1 = time1 % 100;
System.out.print("Please enter the second time: ");
int time2 = in.nextInt();
System.out.println();
hour2 = time2 / 100;
minute2 = time2 % 100;
System.out.println("Time elapsed: " + (Math.abs(hour1 - hour2) + " Hours, " + (Math.abs(minute1 - minute2) + " Minutes \n")));
System.out.print("Do you want to quit? (y/n): ");
answer = in.next();
} while (!answer.equalsIgnoreCase("n"));
}
^^也就是说,将while(answer!=“n”)
更改为while(!answer.equals(“n”)
(1)调用main()
的代码确切位于何处?我假设您希望建议所有代码都应该用main
以外的方法提取。(2) 由于答案
仅在第一次迭代后可用,因此这只能通过do…while
loop.Perfect来实现。非常感谢你!