Пост для разработчиков про баг в задаче по просьбе администрации В общем, условия задачи: Задается целое число от 0 до 1000 включительно случайным образом. Пользователь вводит с клавиатуры число. Программа отвечает, введенное число больше или меньше загаданного. Если за 10 попыток пользователь программы угадывает число - программа выводит: "Ты угадал!" "Загаданное число: [number]" иначе "Ты проиграл!". Исправь одну ошибку, чтобы код выполнял описанные действия. Код задачи:
public class Solution {
    public static boolean flagWin = false;

    public static void main(String[] args) {
        new Solution().runGame();
    }

    private void runGame() {
        Random random = new Random();
        int secret = random.nextInt(1000);
        int tryNumber = -1;
        Scanner scanner = new Scanner(System.in);
        for (int i = 1; i <= 10; i++) {
            System.out.printf("Попытка %d - вводи число: ", i);
            tryNumber = scanner.nextInt();
            if (tryNumber < secret)
                if (i < 10)
                    System.out.println("Загаданное число больше");
            if (tryNumber > secret)
                if (i < 10)
                    System.out.println("Загаданное число меньше");
            if (tryNumber == secret)
                i = stopGame();
                flagWin = true;
        }
        if (flagWin)
            printCongratulations(tryNumber);
        else
            printUpset();
    }

    private void printCongratulations(int number) {
        System.out.println();
        System.out.println("Ты угадал!");
        System.out.println("Загаданное число: " + number);
    }

    private void printUpset() {
        System.out.println();
        System.out.println("Ты проиграл!");
    }

    private int stopGame() {
        return 10;
    }
}
Следующая строчка с ошибкой:
int secret = random.nextInt(1000);
По условию задачи, числа от 0 до 1000 включительно. Обращаемся в документацию (Документацию по Random.nextInt()): public int nextInt(int bound) Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence. The general contract of nextInt is that one int value in the specified range is pseudorandomly generated and returned. All bound possible int values are produced with (approximately) equal probability. The method nextInt(int bound) is implemented by class Random as if by: Другими словами: числа от 0 до 999 будут. Исправляем ошибку, чтобы соответствовало условию задачи, и пишем nextInt(1001); И если вы так сделали, то будьте готовы к тому, что с первого раза вы уже не пройдете задачу. Настоящая ошибка связана с фигурными скобками и if. И что самое интересное: даже если вы исправили ошибку правильно, НО подредактировали и nextInt на 1001, то будьте готовы к тому, что валидатор не будет принимать ваш код до последнего. Не знаю, с чем это связано, но сам попался в этот капкан. Исправил nextInt на 1001 (так как первая ошибка, которую увидел), потом исправил скобки у if, и застрял. Сдал с 4 попытки только, вернув значение обратно на 1000.