Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 18.06.2018
Сообщений: 89
1

Как эффективнее задавать параметры цикла?

21.12.2018, 00:30. Показов 1590. Ответов 5
Метки нет (Все метки)

Вопрос, сегодня у меня такой возник

Java
1
2
3
4
5
int[] arr = new int[100];
 
//Нужно перебрать весь массив с целью изменения в массиве значений, варианта вижу два:
for (int i=0;i<arr.length;i++) { }
for (int i=0;i<100;i++) { }
Правильно ли утверждение что второй вариант "легче" первого, ввиду того, что первый вариант N раз запрашивает длину массива? Или это значение считывается только один раз, при старте цикла?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2018, 00:30
Ответы с готовыми решениями:

Как задавать параметры приложения в Паскале?
:help: В Turbo Pascal 7.0 существует меню Run-&gt;Parameters. Вопрос следующий: что это за параметры...

Не получается задавать параметры шрифтов
Продолжаю изучать HTML 4.0 и возник следущий затык. он связан у установлением шрифта, его фонов...

Можно ли при перегрузке операторов задавать дополнительные параметры?
Здравствуйте. Мне в функции перегрузки оператора нужно передать дополнительный параметр, можно ли...

Всегда ли нужно задавать все параметры процедуры IintGraph?
Всегда ли необходимо явно задавать все параметры процедуры INITGRAPH ?

5
108 / 88 / 25
Регистрация: 02.06.2018
Сообщений: 257
21.12.2018, 00:32 2
в данном случае в практическом смысле никакой разницы между двумя этими строками нет.
arr.length возвращает длину массива. Она у вас равна 100
0
1 / 1 / 0
Регистрация: 18.06.2018
Сообщений: 89
21.12.2018, 00:35  [ТС] 3
Цитата Сообщение от NiceJacket Посмотреть сообщение
в данном случае в практическом смысле никакой разницы между двумя этими строками нет.
arr.length возвращает длину массива. Она у вас равна 100
Простите, вопрос о ситуации вообщем, пример я написал абстрактный.
Я же спрашиваю о тонкости работы цикла, а не о том как лучше поступить в данном случае.
0
108 / 88 / 25
Регистрация: 02.06.2018
Сообщений: 257
21.12.2018, 00:46 4
Лучший ответ Сообщение было отмечено MadMetal как решение

Решение

В этом смысле да, цикл быстрее отработает, если в нём задаётся константа или, например, перед циклом мы выведем в переменную длину массива
Java
1
int length = array.length;
И её укажем в цикле
Другое дело, что это не столь значительно
1
1 / 1 / 0
Регистрация: 18.06.2018
Сообщений: 89
21.12.2018, 00:47  [ТС] 5
Может и не значительно, но мне интересны такие вот всякие подробности.
Спасибо!
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10913 / 6839 / 1625
Регистрация: 25.07.2009
Сообщений: 12,544
21.12.2018, 01:59 6
Лучший ответ Сообщение было отмечено Aviz__ как решение

Решение

MadMetal, компилятору хватит ума создать код, не перечитывающий на каждой итерации длину массива. Второй вариант хуже уже потому, что "магические числа" сами по себе - зло. А понадобится изменить длину массива - ищи по всему тексту, где там циклы, исправляй?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2018, 01:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как задавать строковую переменную? 2) Как задавать рандом?
У меня собственно два вопроса. 1) Как задавать строковую переменную? (string - пишет, что нет...

Какие параметры проекта задавать, чтобы программу можно было запустить на другом компьютере?
Какие параметры проекта задавать чтобы программу можно было запустить на другом компьютере? Что...

Вычислить выражения,используя для организации цикла операторы FOR (значения переменной n задавать с клавиатур
вычислить выражения,используя для организации цикла операторы FOR (значения переменной n задавать...

как эффективнее?
подскажите,как будет лучше поставить кулер залман 10 перфома,от видюхи вверх на выдув,сверху есть...

Объясните параметры цикла While
Объясните валенку что значит вторая строчка кода тут: $arr = array('один', 'два', 'три',...

Как будет работать эффективнее?
Здравствуйте, как будет работать эффективнее? Так: if (a == b || c == d) return 0; Или так:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.