Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 Урок 1 Основные операторы языка C++ |
||
Данный небольшой урок является введением в программирование на C++ в MSVS 2008 Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал) |
||
[назад] [далее] [к содержанию] | ||
Мы рассматриваем основные конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 | ||
В предыдущем уроке мы создали небольшой калькулятор. Этот урок позволил нам бегло познакомиться с некоторыми из конструкций языка C++ и некоторыми функциями. | ||
Теперь пришло время начать освещение основных базовых конструкций языка C++ на конкретных примерах Основные операторы (statements) языка - этой теме посвящен следующий раздел MSVS 2008 Documentation (далее просто Help) - Development Tools and Languages > Visual Studio > Visual C++ > Reference > C/C++ Languages - использование операторов помеченных меткой; - построение выражений; - пустой оператор; - операторы наполнения (логические скобки); - операторы выбора (ветвлений); - операторы организации циклов; - операторы перехода (передачи управления); - операторы объявления переменных; - операторы обработки исключений; |
||
- использование операторов помеченных меткой; метка (label) это особый тип идентификатора, который позволяет пометить нужную строку кода в программе содержащую исполнимый оператор, а затем использовать имя этой метки в операторах передачи управления и выбора. Пример из MSVS 2008 Help //
labels_with_goto.cpp cout << "testing" << endl;
Test2: |
||
данный пример рассчитан на консольное приложение. Как видим в отличие от delphi метка не требует предварительного объявления. Достаточно лишь указать допустимый идентификатор метки (Слово начинающееся с буквы) и закончить его двоеточием указав в нужном месте программы. Метка всегда указывает на исполнимый оператор! Даже если в этом месте будет записана строка комментария например так - Test2: // будет считаться, что метка указывает именно на исполнимый оператор, все незначащие строки (комментарии) при этом игнорируются. |
||
- построение выражений; операторы выражений приводят к вычислению какого-либо результата, никакой передачи управления или итерации при этом не происходит. Выражение должно завершаться точкой с запятой. Примеры выражений: coord_x = coord_x + 10 * MoveSpeed * TimeCounter; absc2 = sqrt( abs ( c1 ) ); |
||
- пустой оператор; Это строка содержащая лишь точку с запятой, т.е. ; |
||
- операторы наполнения (логические скобки); это пара фигурных скобок { и }. Применяется как блок операторов там, где вместо одного оператора нужно использовать целую группу. Блок может не содержать ни одного оператора вообще, тогда это просто пустой блок. Пример: if(
Amount > 100 )
}
Все переменные объявленные внутри блока без префикса static являются локальными для данного блока. |
||
- операторы выбора (ветвлений); оператор switch - оператор ветвлений мы уже сталкивались с этим оператором в предыдущем уроке, когда писали пример простейшего калькулятора форма записи этого оператора switch
( expression ) выражение в скобках должно давать целочисленный результат каждый оператор case позволяет выполнять заданный блок кода в зависимости от указанного целочисленного значения блок кода при default выполняется когда значению выражения не соответствует ни одна строка с оператором case Пример: //
switch_statement2.cpp Если Вы программировали на Delphi, то заметите, что аналогом оператора switch в delphi является оператор case. Т.е. switch в C++ и case в Delphi это одно и то же. Отличия состоят в синтаксисе, наличие строки default (в C++) и применении оператора break (в C++). к операторам выбора также относится оператор условия if if
( expression ) как видим он похож на использование оператора if в delphi, с тем лишь отличием, что слово then не используется. Пример: //
if_else_statement.cpp int
main() { Поэтому в C++ аналогом delphi-конструкции if SomeObject <> nil then {...} else {...}; будет являться if SomeObject { } else { } |
||
- операторы организации циклов; служат для выполнения одной и той же группы операторов итеративно. Различают циклы с предусловием while, пост условием do и цикл с заданным количеством итераций for while
( expression ) в цикле while группа операторов statement выполняется пока значение выражения expression не достигнет нуля Пример: кусок кода на delphi7 aCurrentCharnum
:= 0; при условии, что требуемые переменные объявлены, на C++ будет выглядеть так int
aCurrentCharnum = 0; |
||
Обязательно напишите и проверьте работу этого кода в приложении наподобие HelloWorldCLR | ||
оператор цикла с пост-условием do do оператор do является аналогом цикла repeat..until в delphi Пример: int
i = 0;
do по нажатию на кнопку на ее поверхности выводится 012 |
||
цикл for for
( init-expression ; cond-expression ; loop-expression ) про цикл for в документации по MSVS рассказано много интересных вещей, так что за подробностями обратитесь к ней. Кратко же использование цикла for выглядит так - Пример: String^ SomeStr = L"";
for (int i = 0; i<5; i++) на поверхности кнопки появляется текст 01234 |
||
- операторы перехода (передачи управления); к операторам перехода относятся операторы изменяющие обычный последовательный ход исполнения программы - break, continue, return, goto оператор break аналогичен оператору break в delphi - служит для немедленного выхода из цикла for, while и do, кроме того используется для выхода из ветви оператора switch (в delphi для этих целей не применяется) оператор continue аналогичен оператору continue в delphi - служит для немедленного перехода к следующей итерации цикла for, while и do оператор return return [expression] служит для возврата из функции или процедуры. Если выполняется возврат из функции, то значение выражения expression возвращается в качестве результата. Для функций void (процедур) никакого результата не возвращается. Для возврата из процедуры (функция с результатом void) специального вызова return не требуется. Выполнение процедуры будет закончено там, где кончаются ее логические скобки. оператор goto служит для безусловной передачи управления на указанную метку - goto identifier ; Примеры: для корректного выполнения примера в приложении Windows Forms добавьте на форму поле ввода textBox1 int somenum = Convert::ToInt32(textBox1->Text);
for (int i = somenum; i < (somenum+3); i++) данный код добавьте в обработчик нажатия на кнопку button1 размещенную на форме Form1 по нажатию на кнопку в поле textBox1 вместо введенного значения появляется значение на 1 большее в случае когда поля textBox1 пусто вырабатывается исключительная ситуация. Ее можно избежать, если для свойства Text у textBox1 задать любое числовое значение, которое будет значением по умолчанию //
continue_statement.cpp
printf_s("after the do loop\n"); //
return_statement2.cpp int
max ( int a, int b ) int
main()
printf_s("\n%d is bigger\n", max( nOne, nTwo )); //
goto_statement.cpp
for ( i = 0; i < 10; i++ )
// This message does not print: |
||
в следующем уроке мы рассмотрим операторы объявления переменных и обработки исключений | ||
[назад] [далее] [к содержанию] |