Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 18:56   #1
emdroof
Пользователь
 
Аватар для emdroof
 
Регистрация: 11.04.2011
Сообщений: 46
По умолчанию цикл while

Всем привет! У меня есть следующая конструкция:

Код:
while (...условие...)
{
...код...
if(...условие...)
{
...код...
}
j++;
else
{
...код...
}
}
Смысл в том, что при такой реализации после j++ нельзя поставить else, иначе ошибка, но при этом в другом случае, куда бы я ни поставил j++, то программа совершенно не работает. Как быть в данной ситуации?

Заранее спасибо!
emdroof вне форума Ответить с цитированием
Старый 03.04.2013, 19:00   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Смысл в том, что при такой реализации после j++ нельзя поставить else, иначе ошибка, но при этом в другом случае, куда бы я ни поставил j++, то программа совершенно не работает.
А чего Вы хотите-то? Что и в какой последовательности должно выполниться, если условие if а) истинно, б) ложно?
Abstraction вне форума Ответить с цитированием
Старый 03.04.2013, 19:54   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Код:
if(...условие...)
{
...код...
}
j++;
if (!условие_из_первого_if)
{
...код...
}
Но это убогий подход (я его советую, ибо для учебных целей оный может быть допустим, для мало-мальски серьёзных проектов - лучше переписать). В любом случае стоит называть первичную задачу.

Последний раз редактировалось phomm; 03.04.2013 в 19:56.
phomm вне форума Ответить с цитированием
Старый 03.04.2013, 21:43   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
программа совершенно не работает
А что ж в ней такого что ее нельзя перекроить пооптимальнее?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.04.2013, 12:37   #5
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
По умолчанию

Цитата:
Сообщение от emdroof Посмотреть сообщение
Всем привет! У меня есть следующая конструкция:

Код:
while (...условие...)
{
...код...
if(...условие...)
{
...код...
}
j++;
else
{
...код...
}
}
Смысл в том, что при такой реализации после j++ нельзя поставить else, иначе ошибка, но при этом в другом случае, куда бы я ни поставил j++, то программа совершенно не работает. Как быть в данной ситуации?
Приведу краткий пример: представим, что у нас есть переменные A, B, C и нам необходимо умножить A на B и записать результат в C:
Код:
C=A*B
, но в математике была бы валидна и следующая запись: C=AB, которую компилятор понять не сможет - толи хотели переменной C присвоить значение другой переменной AB (никто не мешает ее объявить), толи еще что.
У тебя точно также: ты записал условный блок if(){}, затем разорвал его j++ и вновь хочешь продолжить, такое просто невозможно. Нужно записать просто:
Код:
while (...условие...)
{
...код...
j++;//вставили j++ или сюда
if(...условие...)
{
...код...
}
//j++; - закоментировали
else
{
j++; //или сюда
...код...
}
}
Вообще, советовал бы сперва почитать следующую книжку: Шилдт Г. - Полный справочник по C#. Да, она уже старенькая (2004 год), но Шилдт давольно толково все излагает и все можно понять
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.

Последний раз редактировалось Mixim; 04.04.2013 в 12:39.
Mixim вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цикл while заменить на цикл for (Java) Начинающий програм Помощь студентам 27 13.03.2013 14:06
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34