如果按下某个字符,则停止脚本

时间:2013-07-15 01:47:27

标签: java

作为家庭作业的一部分,我需要一个程序来比较使用牛顿方法和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);

   }
}

2 个答案:

答案 0 :(得分:0)

我建议你阅读一下java中的线程..

如果没有这个,你就无法完成你想要做的事情。祝你好运!

答案 1 :(得分:0)

主要方法是静态方法。您只能在其中调用静态方法,或创建可以执行操作的对象。从我的角度来看,你有两个选择:

  1. 创建Compare类的对象并调用方法(在main()内部)

    Compare obj = new Compare();
    obj.stop();
    
  2. 使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();
    }