| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Помогите понять С++ |
| Автор: Uchenik1989 2.2.2012, 19:58 | ||
доброго времени суток ... я начал С++ и некоторые вещи не могу понять вообще ... а именно циклы ... разобрал функции перескочивши циклы но пришлось вернуться ... не могу понять как работает :
Очень простая программа которая демонстрирует цикл ... где на консоль выводяться числа от 1 до n ... тоесть пользователь ввёл 100 и программа циклически начала выводить 1 2 3 4 5 6 и до 100 ... Но мне не понятно : cout<<i<<endl; i++; сиаут выводит переменную i и как программа понимает что к ней надо добавить одиницу если на консоль уже должно вывести эту одиницу ... а программа с начала выводит полный цикл от и до ... но я же сказал ---cout<<i<<endl-- что выведи одиницу а потом добавь ещё одиницу а как оно понимает .... короче я уже сам запутался что хотел сказать ... но смысл в том что как всё это понимает компилятор ? тоесть он смотрит что это цикл где i не должен быть больше n дальше он видит сиаут ... выводит одиницу а потом плюсует ... не могу понять как выполняеться цикл ... тоесть как система понимает что надо добавлять одиницу ... А если я скажу что надо добавлять двойку ? оно будет работать ? P.S. Читаю Шилдта но эти моменты мне вообще не понятны .... Помогите пожайлуста кто как может обьяснить ... Модератор: не забываем пользоваться кнопочкой "Код" |
| Автор: feodorv 2.2.2012, 20:33 | ||||||
| Гм. Понять из этого "сумбура вместо музыки", что именно Вам не понятно, не возможно Там у Вас написан такой маленький оператор:
благодаря которому как раз и прибавляется единица к i. Полагаю, что Вы пропустили не только циклы))) Если скажете так:
или так:
то, да, работать будет))) |
| Автор: bsa 3.2.2012, 10:43 | ||
Uchenik1989, для начала, научись уважать себя и других программистов - форматируй код. Пока он простой, еще можно разобраться, но когда станет сложней - повесишься.
Итак, cout - это такой объект, у которого переопределен оператор << (аналогично cin, но для него переопределен оператор >>). Когда ты пишешь: cout << "что-то", то компилятор это воспринимает как: operator<<(cout, "что-то"). Этот оператор - типичная функция, которая возвращает свой первый параметр. В итоге запись: cout << "что-то" << "еще что-то" будет для него выглядеть так: operator<<(operator<<(cout, "что-то"), "еще что-то"). Как нетрудно догадаться, cout - это поток вывода на консоль. Ты в него отправляешь данные, а на консоли они появляются. Дальше, while. Это цикл, его тело выполняется пока выражение в скобках истинно (не равно нулю). i++ - это постфиксное увеличение i на 1. Лучше использовать префиксное: ++i. В общем случае оно быстрее. Подробнее http://forum.vingrad.ru/index.php?show_type=forum&showtopic=269794&kw=faq-c++. |
| Автор: Uchenik1989 3.2.2012, 13:19 |
| Огромное спасибо за пояснения !!!! |