Java: влияние использования цикла if вместо цикла while во время итерации - PullRequest
1 голос
/ 21 июля 2009

У меня есть код что-то вроде этого

Enumeration parameterEnum = request.getParameterNames()
while(parameterEnum.hasMoreElements()){}

Какая разница, если я заменю его из оператора while на оператор if?

Ответы [ 4 ]

3 голосов
/ 21 июля 2009

Если вы измените его на if, оно будет выполнено либо один раз, либо вовсе не выполнится - оператор while будет выполняться бесконечно, пока ParameterEnum.hasMoreElements() не вернет false.

2 голосов
/ 21 июля 2009

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

Если вы преобразуете while в if, то, что в скобках, будет выполнено только один раз.

Если Request.getParameterNames() возвращает "пустое", что бы это ни было, тогда ни один из случаев ничего не сделает.

1 голос
/ 21 июля 2009

, если будет намного, намного быстрее !!! его сложность составляет O(1), а сложность , тогда как - O(N) !!!

Таким образом, чем больше ввод, тем лучше использовать , если вместо , тогда как ; -)

0 голосов
/ 21 июля 2009

Возможно, вы думаете о for утверждении, а не if.

if(ParameterEnum.hasMoreElements()) {}

if будет запускаться только один раз

while(ParameterEnum.hasMoreElements()) {}

while будет работать непрерывно, если вы не увеличиваете enum.

другой вариант - for:

for(Enumeration paramEnum = Request.getParameterNames(); 
                              parameEnum.hasMoreElements();) {}

это похоже на while и будет работать до тех пор, пока метод hasMoreElements() возвращает true, поэтому важно увеличить enum с помощью nextElement()

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