import java.util.Objects;
class Ideone {
public static void main
(String[] args
) { Loop.from(0).to(10).execute(() -> {
System.
out.
println("Hello World!"); });
}
}
class Loop {
private final int from;
private final int to;
private Loop(Builder builder) {
this.from = builder.from();
this.to = builder.to();
}
public static Builder from(int from) {
return new Builder().from(from);
}
public static Builder to(int to) {
return new Builder().to(to);
}
public void execute
(Runnable executable
) { for (int i = from; i < to; i++) {
executable.run();
}
}
pupblic static class Builder {
private int from = 0;
private Builder() {}
public Builder from(int from) {
this.from = from;
return this;
}
private int from() {
return from;
}
public Builder to(int to) {
this.to = to;
return this;
}
private int to() {
return to;
}
public void execute
(Runnable runnable
) { Objects.requireNonNull(runnable);
new Loop(this).execute(runnable);
}
}
}