作为家庭作业的一部分,我需要一个程序来比较使用牛顿方法和Math.sqrt找到平方根所需的时间,并实现一个在输入字符时停止程序的方法。如您所见,我创建了方法'停止 这样做,但我不知道如何将它放入main方法。我尝试创建一个if语句,在输入字符's'时调用该方法,但这导致程序停止,直到输入一个字符。我的计划是将if语句放在两个for循环中(大部分时间都会运行)并且如果没有输入字符则忽略if语句,但我不知道如何实现这一点。我不知道此时该怎么做,所以任何帮助都会受到赞赏。谢谢:D
public class Compare
{
private final long start;
public Stopwatch()
{ start = System.currentTimeMillis(); }
public double elapsedTime()
{
long now = System.currentTimeMillis();
return (now - start) / 1000.0;
}
public void stop()
{
System.out.println("The Stopwatch program has been halted");
System.exit(0);
}
public static void main(String[] args)
{
double s = 0;
int N = Integer.parseInt(args[0]);
double totalMath = 0.0;
Stopwatch swMath = new Stopwatch();
for (int i = 0; i < N; i++)
{
totalMath += Math.sqrt(i);
}
double timeMath= swMath.elapsedTime();
double totalNewton = 0.0;
Stopwatch swNewton = new Stopwatch();
for (int i = 0; i < N; i++)
{
totalNewton += Newton.sqrt(i);
}
double timeNewton = swNewton.elapsedTime();
System.out.println(totalNewton/totalMath);
System.out.println(timeNewton/timeMath);
}
}
答案 0 :(得分:0)
我建议你阅读一下java中的线程..
如果没有这个,你就无法完成你想要做的事情。祝你好运!答案 1 :(得分:0)
主要方法是静态方法。您只能在其中调用静态方法,或创建可以执行操作的对象。从我的角度来看,你有两个选择:
创建Compare类的对象并调用方法(在main()内部)
Compare obj = new Compare();
obj.stop();
使stop()方法成为静态方法(从类本身而不是从对象中调用它):
public class Compare {
public static void stop() {
System.out.println("The Stopwatch program has been halted");
System.exit(0);
}
}
public static void main(String[] args) {
// Processing here...
// Here you want to stop the program
Compare.stop();
}