0

宿題の一環として、ニュートン法と Math.sqrt を使用して平方根を見つけるのにかかる時間を比較するプログラムを使用し、文字が入力されたときにプログラムを停止する方法を実装する必要があります。ご覧のとおり、メソッド 'stop to do this を作成しましたが、それを main メソッドに入れる方法がわかりません。文字「s」が入力されたときにメソッドを呼び出すifステートメントを作成しようとしましたが、これにより、文字が入力されるまでプログラムが停止しました。私の計画は、if ステートメントを両方の for ループ (ほとんどの場合実行されるループ) 内に配置し、文字が入力されていない場合は if ステートメントを無視することでしたが、これを達成する方法がわかりません。この時点で何をすべきかわからないので、助けていただければ幸いです。ありがとう

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);

   }
}
4

2 に答える 2

0

Javaでのスレッド化について読むことをお勧めします..

これがなければ、あなたがやろうとしていることを達成することはできません。幸運を!

于 2013-07-15T01:54:21.540 に答える
0

メイン メソッドは静的メソッドです。内部で静的メソッドを呼び出すか、何かを実行できるオブジェクトを作成することしかできません。私の観点からは、次の 2 つのオプションがあります。

  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();
    }
    
于 2013-07-15T01:55:31.723 に答える