Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Правила записи кода цикла / 6 сообщений из 6, страница 1 из 1
06.12.2005, 17:49
    #33420424
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правила записи кода цикла
Здравствуйте.
Скажите пожалуйста в каком случае будет наиболее корректна запись для цикла:

1) случай - определение количества итераций вне цикла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 void  foo1(String[] src) {

 int  size = src.length();   // определение количества итераций
 for ( int  i= 0 ; i<size; i++) {
...
}

}

2) случай - определение количества итераций в заголовке цикла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 void  foo1(String[] src) {


 for ( int  i= 0 ; i<src.length(); i++) {
...
}
}

Лично мне кажется более всего лучший код в случае 1 с точки зрения производительности, но я могу ошибаться и не знать если компилятор сам оптимизирует этот шаг. Помогите разобраться с этим!!!
...
Рейтинг: 0 / 0
06.12.2005, 17:52
    #33420436
java coder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правила записи кода цикла
если цикл будет пустой, а количество иттераций огромным, то ты сможешь заметить разницу во времени исполнения.

в противном случае разница будет в сотые доли процента, т.е. никакая.
...
Рейтинг: 0 / 0
06.12.2005, 17:54
    #33420444
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правила записи кода цикла
прошу прощения, я допустил ошибку - на самом деле привел неправильный пример - длина массива src.length и в обоих случаях будет одинаковая производительность.

А меня интересует именно вычисляемое значение количества итераций. Предположим если бы был такой метод src.length() который каждый раз при вызове вычислял размер.

т.е. как компилятор будет обрабатывать этот цикл - он вычислит заранее в заголовке цикла количество итераций или будет каждый раз на каждой итерации вычислять?
...
Рейтинг: 0 / 0
07.12.2005, 09:08
    #33421165
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правила записи кода цикла
:)
Код: plaintext
1.
2.
3.
 for  ( int  i =  0 , size = src.length; i < size; i++) {
  // :)
}

--
тынц :)
...
Рейтинг: 0 / 0
07.12.2005, 11:31
    #33421568
AndreySerj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правила записи кода цикла
unicornmirageЗдравствуйте.
Скажите пожалуйста в каком случае будет наиболее корректна запись для цикла:

1) случай - определение количества итераций вне цикла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 void  foo1(String[] src) {

 int  size = src.length();   // определение количества итераций
 for ( int  i= 0 ; i<size; i++) {
...
}

}

2) случай - определение количества итераций в заголовке цикла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 void  foo1(String[] src) {


 for ( int  i= 0 ; i<src.length(); i++) {
...
}
}



Да, во втором варианте условное выражение будет оцениваться на каждой итерации цикла, поэтому выход - либо твой вариант 1, либо вариант Грассоф
...
Рейтинг: 0 / 0
07.12.2005, 18:01
    #33423261
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правила записи кода цикла
А.Грасоff™
тынц :)
спасибо, уважаемый уникум!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Правила записи кода цикла / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]