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

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

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

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

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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.12.2018, 00:30
Ответы с готовыми решениями:

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

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

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

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

Решение

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

Решение

MadMetal, компилятору хватит ума создать код, не перечитывающий на каждой итерации длину массива. Второй вариант хуже уже потому, что "магические числа" сами по себе - зло. А понадобится изменить длину массива - ищи по всему тексту, где там циклы, исправляй?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.12.2018, 01:59
Помогаю со студенческими работами здесь

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

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

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

Вычислить выражения,используя для организации цикла операторы FOR (значения переменной n задавать с клавиатур
вычислить выражения,используя для организации цикла операторы FOR (значения переменной n задавать с клавиатуры) y:=summ((2+i))/(i!)

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
Линейное решение нелинейной задачи будет иметь приблизительный результат вычисления для метода обработки данных из double buffering.
Hrethgir 10.04.2025
Вообще изначально я пренебрёг квадратурой числа, но потом понял, что для вычисления приблизительного значения - сгодится, формулу можно будет корректировать по ходу. Это потому что прямое соотношение. . .
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
Vue SFC компонент на PHP с Fusion
Jason-Webb 09.04.2025
PHP на сервере и JavaScript на клиенте — классическое сочетание, которое, несмотря на свою эффективность, создает определенный когнитивный диссонанс при разработке. В этом контексте появляются. . .
TypeScript vs JavaScript: Отличия и когда что использовать
Reangularity 09.04.2025
JavaScript появился в 1995 году как творение Брендана Эйха и быстро стал основой интерактивности в вебе. За свою историю он прошел путь от простого языка для манипуляций с DOM до полноценной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер