/* * 練習問題10.4 p.205 * 今までの練習問題からforループを使用した問題を数題選んで、whileループを使用して書き直しなさい。 * do-whileループを使用しても書きなおすことができますか。そのように書きなおしたりしますか。しないとしたら、なぜですか。 */ /* * 練習問題3.5 p.86 * 他のベンチマークを行う新たな拡張したクラスを作成しなさい。たとえば、0からパラメータとして渡された値まで * ループするのに要する時間を計るとか。 */ package ch10.ex10_04; public abstract class Benchmark { abstract void benchmark(); public final long repeat(int count) { long start = System.nanoTime(); // ##### オリジナル(for版) ##### /* * for (int i = 0; i < count; i++) { benchmark(); } */ // ##### while版 ##### int i = 0; while (i < count) { benchmark(); i++; } // countが0の場合、benchmarkが一度も実行されてはいけないので、do-whileでは書けない return (System.nanoTime() - start); } }