|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.12.2012, 10:05 | #1 |
Регистрация: 07.04.2010
Сообщений: 5
|
Не могу выйти из цикла while
Суть: есть некий диапозон значений которые мне надо генерировать, каждое значение надо использовать не более одного раза, хочу затолкнуть значение в строку и проверить есть значение в строке, если значение уже есть, то сформировать новое, когда новые значения перестают формироваться, я зацикливаюсь, что то не могу понять, как из цикла выйти, если я использовал все числа от 0 до 9, пока для удобства диапозон от 0 до 9
Код:
|
12.12.2012, 11:21 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
В цикле:
Код:
Ну или так: Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 12.12.2012 в 11:26. |
12.12.2012, 11:39 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
во-первых, добавлять в строку - далеко не самый эффективный вариант (в качестве быстродействия).
во-вторых, если планируется диапазон больше, чем от 0 до 9, то обязательно нужно добавить разделитель. в-третьих, Вам самостоятельно нужно позаботится, чтобы цикл не стал бесконечным. Для этого достаточно подсчитать, сколько всего значений может быть получено, в цикле при получении каждого нового значения увеличивать счётчик и, как только счётчик достиг максимума - в цикл НЕ ВХОДИТЬ! ну и, наконец, в чётвёртых, если нужно получить определённный набор случайных значений без повторений, а количество элементов в наборе строго ограниченное число (например, 36 карт), то выбранный Вами алгоритм КРАЙНЕ сложен и неэффективен - чем больше значений уже сгенерировано, тем больше вероятность, что Вы будете получать случайные значений из тех, что уже были ранее. а последнюю, 36-карту можно и десятки/сотни раз выбрасывать случайное значени, до тех пор, пока не выпадет единственное, которого ещё не было. В подобных случаях НАМНОГО удобнее и эффективнее поступать так: заполняем массив нужными значениями (подряд). перемешиваем случайным образом. Берём по очереди значения из массива (это будут случайные значения без повторов). Это просто, быстро и эффективно. |
18.07.2013, 13:50 | #4 |
Заблокирован
Регистрация: 17.07.2013
Сообщений: 104
|
Вы что, с ума все посходили?
Break; |
18.07.2013, 14:18 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Stertor, Вы что с ума сошли, старую тему поднимать? Вам заняться больше нечем?!
тут Вас кормить не будут... |
18.07.2013, 14:38 | #6 |
Заблокирован
Регистрация: 17.07.2013
Сообщений: 104
|
А я буду, буду поднимать, потому, что мне обидно и больно за таких быдлокодеров.
Еще и вновь пришедших путаете. |
18.07.2013, 14:44 | #7 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
потому что это обрывок, и не видно зачем ему нужен и нужен ли flag. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
18.07.2013, 14:51 | #8 |
Заблокирован
Регистрация: 17.07.2013
Сообщений: 104
|
Нет, не заметил. И сейчас не вижу.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с циклами в Delphi 7. Выйти из цикла достигнув указанного условия. | CONDOR* | Помощь студентам | 1 | 16.05.2012 18:59 |
C++ Как выйти из цикла при нажатии enter? | Seede1 | Помощь студентам | 2 | 06.12.2011 14:50 |
Как выйти из цикла по нажатию горячей клавиши? | suslik_ | Помощь студентам | 2 | 06.07.2011 16:20 |
Делфи выйти из цикла. | S_Yevgeniy | Помощь студентам | 1 | 14.11.2009 09:41 |
Как выйти из бесконечного цикла! | Эдуард | Общие вопросы C/C++ | 11 | 02.03.2008 19:15 |