Java 中沒有簡單的構造來重複某件事 N 次。當然,我們可以創建一個 for 循環,但在絕大多數情況下,我們並不真正關心在循環中創建什麼樣的變數。我們只是希望程式碼的某些部分重複 N 次,僅此而已。
隨著 Java 8 中引入 lambda 表達式,您可以使用以下內容:
public class RepeatDemo { public static void main(String[] args) { // Повтор одной строки repeat(10, () -> System.out.println("HELLO")); // Повтор нескольких строк repeat(10, () -> { System.out.println("HELLO"); System.out.println("WORLD"); }); } static void repeat(int n, Runnable r) { for (int i = 0; i < n; i++) r.run(); } }
它可能不如舊的 for 循環那麼賞心悅目或明顯,但它確實消除了循環中的額外變數。如果 Java 8 能更進一步,為 lambda 表達式中的參數提供「巧克力」語法,那麼我們就會得到類似 Scala/Groovy 程式碼的東西,這將使程式碼更加直觀。例如:
// Ну разве не здорово было бы иметь такую конструкцию в Java? repeat(10) { System.out.println("HELLO"); System.out.println("WORLD"); }
來源
GO TO FULL VERSION