Java меняется на время - PullRequest
       12

Java меняется на время

1 голос
/ 22 февраля 2011

Я бы хотел изменить цикл for на оператор while:

for (int x = 0; x < items.size(); x++) {...}

Я пробовал:

int x = 0;
while(x<items.size()){
x++;
...
}

но это не сработает.

Ответы [ 3 ]

7 голосов
/ 22 февраля 2011

ставит x ++ в конец блока while.

while(x<items.size()){
...
x++;
}
5 голосов
/ 22 февраля 2011

должно быть

int x = 0;
while(x<items.size()){
...

x++;
}

С x ++ в конце цикла (потому что в цикле for секция приращения выполняется только после того, как программный элемент управления достигнет закрывающих скобок), но в остальном все выглядит хорошо. Это должно работать.

2 голосов
/ 22 февраля 2011

Ваш код должен был выглядеть следующим образом:

int x = 0;
while(x<items.size()){
...
...
...
x++;
}  

Причина, по которой операция x++ является последним оператором в цикле, заключается в увеличении значения 'x' только тогда, когда мы закончили сцикл и нам нужно увеличить значение переменной цикла.

Если вы введете x++ в начале кода цикла, код не будет работать для последней схемы цикла, где до входа в цикл значение x было бы x=items.Size( );.Так что он не сможет войти в цикл, так как условие x<items.Size();

...