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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.76
Zhilidan
13 / 13 / 3
Регистрация: 26.02.2010
Сообщений: 28
#1

for или while (Какой цикл "лучше"?) - C++

02.03.2010, 17:44. Просмотров 4077. Ответов 7
Метки нет (Все метки)

Привет. Немного неординарный вопрос, но может кто знает:
Какой цикл выгоднее использовать, когда можно использовать оба?
Насколько я понимаю

C++
1
for (i = 1; i <= n; ++i) {...;}
и
C++
1
2
i = 1;
while(i <= n) {...; ++i;}
аналогичны (за исключением работы continue в них), так есть ли какое-то преимущество для ресурсов компьютера (для удобства чтения имхо for лучше) или нет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2010, 17:44     for или while (Какой цикл "лучше"?)
Посмотрите здесь:
C++ я задал произвольный текст длинной 5 строк, и допустим что я ввел 5 раз букву "П" , какой цикл нужно создать чтобы пометять букву "П" на букву "Р" ?
C++ Вставить пробел после каждого символа "." "," "!" или "?", если за этими символами не следует пробел
Что лучше для хранения БД в динамической памяти "Связный список" или же просто в массиве? C++
C++ Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков "+", "-", "*".
Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день","Суббота" или "Воскресенье" C++
Определить, какая из точек "В" или "С" расположены ближе к точке "А". C++
C++ Обчисление введенной строки любого формата(пример:"(2+3)/4*2"или"2+3"или ...)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
freeman27015
50 / 49 / 2
Регистрация: 19.03.2009
Сообщений: 320
02.03.2010, 18:15     for или while (Какой цикл "лучше"?) #2
я читал что цикл for более гибкий чем while
в нем можно опустить все три или какое то одно выражение внутри круглых скобок.
C++
1
2
for(;;)
{это бесконечный цикл}
также в нем можер обьявлять динамические переменные
например
C++
1
2
for(int i = 2; i < 10; i++)
{выражения}
Atrus
12 / 12 / 0
Регистрация: 08.07.2009
Сообщений: 45
02.03.2010, 18:20     for или while (Какой цикл "лучше"?) #3
По трате ресурсов одинаковы. А вот цикл с постусловием do - while быстрее т.к. в for и while используется лишняя команда перехода. Хотя экономия будет незначительна.
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,230
Завершенные тесты: 1
02.03.2010, 18:45     for или while (Какой цикл "лучше"?) #4
в книгах пишут что for в некоторой степени удобнее,хотя кому как...сам я while-ом пользуюс,мне так удобнее
Цитата Сообщение от freeman27015 Посмотреть сообщение
for(;;)
{это бесконечный цикл}
это самое можно и с while
C++
1
while(true){...}
Добавлено через 3 минуты
Zhilidan, for удобнее тем что в нем в отличии от while можно создавать переменные,которые сразу после этого цикла уничтожаются
компилируйте это
C++
1
2
3
4
5
6
7
int a,b;
a=b=0;
cin>>a>>b;
for(int i=0;i<a;i++){
cout<<"i="<<i<<" b="<<b<<" a="<<a<<endl;
}
cout<<"i="<<i<<" b="<<b<<" a="<<a<<endl;
Zhilidan
13 / 13 / 3
Регистрация: 26.02.2010
Сообщений: 28
02.03.2010, 19:28  [ТС]     for или while (Какой цикл "лучше"?) #5
Всем спасибо, понял, что впринципе разница заключается только в том, что в for можно задавать локальные переменные (сразу в цикле)..
breate
56 / 56 / 2
Регистрация: 23.10.2009
Сообщений: 250
02.03.2010, 19:36     for или while (Какой цикл "лучше"?) #6
очень сложный вопрос
отвечу так: каждая строка в С++ это массив char заканчивающийся '\0' или просто 0
по этому мы можем написать так
C++
1
2
3
char *p=new char[128]
while(*p)
{..}
этот цикл пройдёт без лишних переменных до конца строки однако мы можем сделать так
C++
1
2
for (int i=0;p[i]!=0;i++)
{}
значение тоже только не удобно

так же существуют численные массивы которые де заканчиваются детерминированным нулем
C++
1
2
3
int *a=new int [n]
for(int i=0;i<n;i++)
{..}
а while
C++
1
2
3
4
5
int *a=new int [n]
int i=0;
while(i<n){
i++;
}
отсюда то что и можно было получить простым переводом
while - пока не что то
for(; ; )- для i от чего то до чего то
что лучше ответь сам
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
02.03.2010, 19:42     for или while (Какой цикл "лучше"?) #7
Цитата Сообщение от breate Посмотреть сообщение
мы можем написать так
C++
1
2
3
char *p=new char[128]
while(*p)
{..}
этот цикл пройдёт без лишних переменных до конца строки однако мы можем сделать так
C++
1
2
for (int i=0;p[i]!=0;i++)
{}
значение тоже только не удобно
Ну можно и так:
C
1
2
3
4
char str[] = "abcd", *p;
for ( p = str; *p; ++p ){
    ....
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2010, 19:47     for или while (Какой цикл "лучше"?)
Еще ссылки по теме:
C++ Реализовать условие "больше или равно", "меньше или равно" для простых дробей в классе
бинарный "++": "Counter" не определяет этот оператор или преобразование к типу приемлемо к встроенному C++
Нужно сделать так, чтобы при вводе числа, выводило "рублей" или "рубль" C++
Для массива из 10 чисел проверить, есть ли в нем два одинаковых числа и напечатать "да" или "нет" C++
Проверить, образуют ли числа симметричную последовательность (варианты ответа "Yes" или "No") C++

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

Или воспользуйтесь поиском по форуму:
breate
56 / 56 / 2
Регистрация: 23.10.2009
Сообщений: 250
02.03.2010, 19:47     for или while (Какой цикл "лучше"?) #8
очень интересное предложение
Yandex
Объявления
02.03.2010, 19:47     for или while (Какой цикл "лучше"?)
Ответ Создать тему
Опции темы

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