Я понимаю, что в условии написано именно if, но с while все тоже верно выводит, почему компилятор не принимает?
if (createdThreadCount < Solution.count) {
System.out.println(new GenerateThread());
}
while (createdThreadCount < Solution.count) {
System.out.println(new GenerateThread());
}