我要做的是在这个已经存在的代码上添加一个停止函数。我想我可以实现一个停止函数,如果我将一个String输入放到哪里,如果我输入s表示停止,程序将在当前时间停止。因此,当我按下s时,它就像没有if语句
一样运行public class Stopwatch {
private final long t;
public Stopwatch()
{
t=System.currentTimeMillis();
}
public double elapsedTime()
{
return (System.currentTimeMillis() - t) / 1000.0;
}
public double stopping(double newton, double time, double totnewt, double tottime)
{
double timeNewton = newton;
double timeMath = time;
double totalNewton = totnewt;
double totalMath = tottime;
StdOut.println(totalNewton/totalMath);
StdOut.println(timeNewton/timeMath);
return time;
}
public static void main(String[] args)
{
System.out.println("Enter N:");
int N = StdIn.readInt();
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();
String s = StdIn.readString();
if (s == "s")
{
swMath.stopping(timeNewton, timeMath, totalNewton, totalMath);
swNewton.stopping(timeNewton, timeMath, totalNewton, totalMath);
}
StdOut.println(totalNewton/totalMath);
StdOut.println(timeNewton/timeMath);
}
}
答案 0 :(得分:1)
您的代码中存在基本的java错误。
您无法将字符串与==运算符进行比较。
仅适用于数字(例如,float,int,double等)
在if条件
中使用s.equals(“s”)if (s.equals("s"))
{
swMath.stopping(timeNewton, timeMath, totalNewton, totalMath);
swNewton.stopping(timeNewton, timeMath, totalNewton, totalMath);
}
equals是一个比较字符串
的字符串函数