How can I make a Java program sleep between iterations?

For a more advanced and flexible approach:

import java.util.concurrent.*;

public class SleepExample {
    public static void main(String[] args) {
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

        Runnable task = new Runnable() {
            private int count = 1;

            @Override
            public void run() {
                if (count > 10) {
                    scheduler.shutdown(); // Stop execution
                    return;
                }
                System.out.println(count++);
            }
        };

        scheduler.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS);
    }
}

This is non-blocking, meaning your program can do other tasks in parallel.