Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

a.angelov avatar a.angelov 1316 Точки

[Technical Issue] Java - Проблем с for цикъл

Имам следния цикъл с декларирани две променливи, които променям на всяка итерация:

for (int i = 0, j = number.length() - 1; i <= number.length() / 2; i++, j--) { и т.н. /уточнение - number е от тип стринг/

В Еклипс оцветеното в червено ми свети и като коментар за грешка изписва - Dead code - и съответно не може да се изпълни програмата.

Не мога да разбера каква е причината..., някой ако може да помогне...

Тагове:
0
Java Advanced 03/09/2014 21:58:25
Anonymous:
Solution found.
HPetrov avatar HPetrov 822 Точки
Best Answer

Това може да се дължи на нещо в цикъла което да прекъсва програмата или да нарушава по някакъв начин итерирането. Ако си споделиш целия код в цикъла може по-добре да ти помогнем.

Edit:

Тоя "return" ти прави проблемите. Изведи го по добре като булева променлива и само я промени когато трябва и чупи цикъла ако има нужда. Идеята на този return да пищи горе е, че може да не завърти даже 1 път цикъла. Ползвай break за целта и просто връщай в зависимост от някаква булева променлива.

1
02/09/2014 23:30:40
quickben avatar quickben 966 Точки

offtopic: да те попитам за обща култура dead code еквивалента на unreachable code detected във Visual Studio ли е ? :)

0
HPetrov avatar HPetrov 822 Точки

Нещо подобно. Не същото но много подобно. Разликата е, че unreachable code не се компилира докато dead code се компилира и просто се игнорира от компилатора.

1
02/09/2014 23:29:55
a.angelov avatar a.angelov 1316 Точки

Прав си - ето КОДА.

Ето и КОДЪТ след корекция /явно ми се спи много защото горния код, логично още на първата итерация връща резултат от метода и изобщо не прави това което искам от него :)/

0
02/09/2014 23:41:49
nickpanaiotov avatar nickpanaiotov 21 Точки

Защо не си декларираш втората променлива в тялото на цъкъла и там да си я ъпдейтваш? 

Иначе вярно изглежда. Пробвай да размениш i и j  при ъпдейта.

for (int i = 0, j = (number.length() - 1); i <= (number.length() / 2); j--,i++) {

}

 

0
a.angelov avatar a.angelov 1316 Точки

Проблема е решен - причината е както по-горе НРеtrov е написал - имам в блока на цикъла return и от там се чупи. Изведох нова булева променлива в началото на метода и на нея сменям стойността - true или false и не ползвам return в цикъла.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.