В настоящее время я изучаю Java в своих онлайн-классах, и я изучаю циклы (в частности, операторы continue и break). Приведенный мне пример был:

int j = 0
while (true){
    System.out.println();
    j++;
    System.out.print(j);
    if (j%2 > 0) continue
    System.out.print(" is divisible by 2");
    if (j >= 10) break;
}

Я не понимаю, почему это (j% 2> 0), а не (j% 2 == 0), потому что, например, что, если 'j' равно 5, а вы делаете 5% 2. Разве полученное вами число не будет 1? Или я что-то упускаю? Может кто-нибудь объяснить мне это? (извините, я не мой вопрос, это немного сбивает с толку. Я никогда раньше не пользовался этим сайтом и я довольно молод)

-1
WeirdGirlGamer 23 Ноя 2020 в 07:15

4 ответа

Лучший ответ

Продолжить означает «перейти к началу цикла, пропуская оставшуюся часть кода цикла», а не «продолжить выполнение кода». Итак, поскольку 5% 2 равно 1, а 1> 0, продолжение будет выполнено, перейдя непосредственно к началу цикла и пропустив остальную часть тела.

Почему они используют> 0 вместо! = 0? Нет никаких технических причин, это разница в стиле. Я лично использовал бы последнее, как более ясное для меня. Но либо работает.

0
Gabe Sechan 23 Ноя 2020 в 04:31

Позвольте мне объяснить вам. См. Комментарии к каждой строке.

int j = 0          
while (true){
    System.out.println();
    j++;                   //increases the value of j on the next line by 1.
    System.out.print(j);   //prints 1, the first time because of above, 0 + 1.
    if (j%2 > 0) continue  //using modulus operator(%) we are doing 1 % 2, answer is 1
                           //since 1 % 2(if 1 is divisible by 2) > 0 we are 
                           //continue statement breaks the iteration in the 
                           //loop, so anything below this line won't be 
                           //executed.
    System.out.print(" is divisible by 2");//this line will only be executed
                                           //if j is divisible by 2. that is 
                                           //j is divisible by 2 (j%2 == 0)
    if (j >= 10) break;                    //when j is equal or greater than 
                                           //0 we are stopping the while loop.
}
1
HaroldSer 23 Ноя 2020 в 05:54
int j = 0;
while (true){
    System.out.println();
    j++;
    System.out.print(j);
// in this case you won't print any message and you  
// are sure that the next number is even (j will be incremented by "continue;").
    if (j%2 > 0) continue; 
    System.out.print(" is divisible by 2");
    if (j >= 10) break;
}
0
hous 23 Ноя 2020 в 04:30

X% 2 означает, что остаток от x делится на 2. Таким образом, если остаток от x / 2 больше 0, это означает, что x - нечетное число. Когда x% 2 == 0, тогда x - положительное число

0
afunnyworld 23 Ноя 2020 в 04:30
64962490