Добавление нескольких условий в оператор For - PullRequest
0 голосов
/ 26 мая 2020

У меня вопрос: почему вывод 0 - 4? Но не 0-9?

int x = 0;
for (long y = 0, z = 4; x < 5 && y < 10; x++, y++) {
   System.out.print(y + " ");
}

также следующий код не компилируется?

int x = 0;
for (long y = 0, x = 4; x < 5 && y < 10; x++, y++) {
   System.out.print(x + " ");
}

Не могли бы вы объяснить, почему?

Ответы [ 2 ]

2 голосов
/ 26 мая 2020
int x = 0;
for (long y = 0, z = 4; x < 5 && y < 10; x++, y++) {
    System.out.print(y + " ");
}

Приведенное выше выводит от 0 до 4, поскольку x < 5 && y < 10 может быть истинным, только если истинны оба неравенства. Итак, как только x == 5, l oop завершается.

int x = 0;      
for (long y = 0, x = 4; x < 5 && y < 10; x++, y++) {
        System.out.print(x + " ");
}

Вышеупомянутое не компилируется, потому что вы уже определили x как int. Первая часть l oop пытается переопределить его как long

0 голосов
/ 26 мая 2020
int x = 0;
for (long y = 0, z = 4; x < 5 && y < 10; x++, y++) {
   System.out.print(y + " ");
}

Условие не верно, когда x == 5, x <5 && y <10, ваше условие состоит в том, что x меньше 5, а y меньше 10, поэтому условие не выполняется, когда x == 5, если вы измените условие на || будет выводить 0-9 </p>

int x = 0;
for (long y = 0, x = 4; x < 5 && y < 10; x++, y++) {
   System.out.print(x + " ");
}

Это не компилируется, потому что значение x было определено, независимо от типа. Причина такого рода ошибки заключается в том, что сам Java не разрешен, "Java дизайнеры думают, что это вызовет путаницу в программе "

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