Java помощь!Попытка выяснить, как работает цикл for - PullRequest
0 голосов
/ 29 ноября 2018
public static void main(String[] args) {

    // create new instance of random class
    Random rand = new Random();
    // set variable num to be a random number between 0 and 10
    int user = rand.nextInt(10);
    // set output equal to the result of our function
    int password = check_password(user);
    // print result
    System.out.println(password);

}

// returns the factorial of the given input- by what number i is 
// i can be less than or equal to 10
    public static int check_password(int user) {
    int log = 1;
    for (int i = 1; i <= user; i++) {
        log = log * i;
    }
    return log;
    }

Я не понимаю, как ответ может быть больше 10, я не понимаю, как он может печатать ответы, когда вы запускаете код в затмении: 40320 120 6 5040 24 2 1 362880

Я должен выяснить, что делает код, и написать это в коде в комментариях

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Цикл for будет повторяться, однако много раз случайный пользователь int был установлен на.Каждый раз, когда он зацикливается, он будет выполнять log * i.Я, какая итерация цикла он включен.Таким образом, если пользователь был случайно установлен на 5, он будет повторяться 5 раз.Первый цикл выполнит 1 * 1, что установит журнал в 1. Следующий цикл выполнит 1 * 2, установив журнал в 2. Третий цикл выполнит 2 * 3, установит журнал в 6 и так далее.Если для пользователя int случайно выбрано значение 5, окончательный журнал будет 120. Вы возвращаете конечное значение журнала и устанавливаете его равным вашему паролю, затем распечатываете пароль.Вот почему значение, которое вы печатаете, больше 10.

0 голосов
/ 29 ноября 2018

Ваш метод "check_password" фактически вычисляет факториал числа.Например, если число сгенерировано равным 5, ваш метод вернет 120. Таким образом, результат может быть намного выше 10, так как факториал 10 равен 3628800

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...