Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
denvasden
4 / 4 / 0
Регистрация: 25.10.2012
Сообщений: 104
#1

Цикл без тела - C++

12.02.2013, 14:12. Просмотров 1384. Ответов 10
Метки нет (Все метки)

Доброго всем дня!
Читаю книжку, раздел управляющие конструкции, и тут встречаю вот такое утверждение: "В некоторых программах даже встречается циклы без тела, в которых сразу после условия следует точка с запятой"
Пример не приведен.

Как может завершиться цикл, если нет тела благодаря которому меняется условие?
В каких случаях применяются такие циклы?

Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 14:12     Цикл без тела
Посмотрите здесь:

C++ Использование команды system(); Без всяких окон (без dos и т.д)
Какое назначение может иметь в программе приведенный цикл без тела? C++
C++ Изменить цикл for на цикл do-while
Падение тела C++
Оператор for, без if (Напишите программу, суммирующую числа в указанном пользователем диапазоне, но без оператора if, который устанавливает границы) C++
Как убрать цикл while, чтобы результат выводился без нажатия точки? C++
C++ Вывод числа в столбик с первой цифры, без массива, без строк
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12890 / 7276 / 811
Регистрация: 27.09.2012
Сообщений: 17,975
Записей в блоге: 2
Завершенные тесты: 1
12.02.2013, 14:22     Цикл без тела #2
Цитата Сообщение от denvasden Посмотреть сообщение
Как может завершиться цикл, если нет тела благодаря которому меняется условие?
в условии происходит изменение всего, что нужно
Цитата Сообщение от denvasden Посмотреть сообщение
В каких случаях применяются такие циклы?
Например, вот:
C++
1
2
3
4
5
6
7
#include <iostream>
int main(){
    char str[]=" My    str   in g   ";
    for(char *p1=str,*p2=str;*p2=*p1;p2+=(*(p1++)==' '?0:1));
    std::cout<<str<<std::endl;
    return 0;
}
denvasden
4 / 4 / 0
Регистрация: 25.10.2012
Сообщений: 104
12.02.2013, 14:23  [ТС]     Цикл без тела #3
Croessmah, забыл уточнить, что там речь шла о цикле while()
Art
150 / 150 / 35
Регистрация: 20.12.2011
Сообщений: 1,433
Завершенные тесты: 2
12.02.2013, 14:23     Цикл без тела #4
Возможно тут вы найдете ответ на свой вопрос (страница 131)
denvasden
4 / 4 / 0
Регистрация: 25.10.2012
Сообщений: 104
12.02.2013, 14:25  [ТС]     Цикл без тела #5
Art92, спасибо, читаю.
Art
150 / 150 / 35
Регистрация: 20.12.2011
Сообщений: 1,433
Завершенные тесты: 2
12.02.2013, 14:28     Цикл без тела #6
не за что
Croessmah
Модератор
Эксперт CЭксперт С++
12890 / 7276 / 811
Регистрация: 27.09.2012
Сообщений: 17,975
Записей в блоге: 2
Завершенные тесты: 1
12.02.2013, 14:30     Цикл без тела #7
Цитата Сообщение от denvasden Посмотреть сообщение
Croessmah, забыл уточнить, что там речь шла о цикле while()
а разница? Вот Вам с while - копирование одной строки в другую:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
void Mystrcpy(char * dest,char * source){
    while(*(dest++)=*(source++));
}
 
 
int main(){
    char str1[]="My string";
    char str2[1024];
    Mystrcpy(str2,str1);
    std::cout<<str2<<std::endl;
    return 0;
}
denvasden
4 / 4 / 0
Регистрация: 25.10.2012
Сообщений: 104
12.02.2013, 14:32  [ТС]     Цикл без тела #8
Croessmah, изящно. спасибо)
СПП
25 / 25 / 2
Регистрация: 15.12.2012
Сообщений: 71
12.02.2013, 14:34     Цикл без тела #9
Цитата Сообщение от denvasden Посмотреть сообщение
В некоторых программах даже встречается циклы без тела, в которых сразу после условия следует точка с запятой
Цитата Сообщение от denvasden Посмотреть сообщение
точка с запятой
" ;; " - вот такой там символ подразумевается???
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
12.02.2013, 14:34     Цикл без тела #10
например создать таймер в отдельно выделенном потоке. завершится цикл тогда, когда поток будет "убит"
как сам таймер реализовать я не знаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2013, 14:36     Цикл без тела
Еще ссылки по теме:

C++ Нужно найти удельный вес твердого тела(любого): указывается название твердого тела, его удельный вес
Найти сумму цифр заданного числа без учёта последней цифры через цикл while C++
C++ Можете переписать код без указаетелей и без printf\scanf?
C++ Цикл for без указания шага
заменить цикл for на цикл while C++

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

Или воспользуйтесь поиском по форуму:
denvasden
4 / 4 / 0
Регистрация: 25.10.2012
Сообщений: 104
12.02.2013, 14:36  [ТС]     Цикл без тела #11
СПП, там имелось в виду
while("выполнение нужных действий");
Yandex
Объявления
12.02.2013, 14:36     Цикл без тела
Ответ Создать тему
Опции темы

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