第5章:文
5290 ワード
#1.単純文
C++言語のほとんどの文はセミコロンで終わり、1つの式で、末尾にセミコロンを付けると式文になります.
空の文
最も簡単な文は空の文で、空の文には単独のセミコロンしか含まれていません.
; //
セミコロンを書き漏らさないで,セミコロンをたくさん書くな.
空の文は文であるため、文の使用が許可されている場所で使用できます.
int v1 = 1,v2 = 2,ival;
ival = v1 + v2;; // :
ふくごうぶん
複合文とは、カッコで囲まれた文と宣言されたシーケンスを指し、複合文はブロックとも呼ばれます.
#2.文の役割ドメイン
if、switch、while、for文の制御構造で変数を定義できます.制御構造に定義された変数は、対応する文の内部にのみ表示され、文が終了すると、変数はその役割の範囲を超えます.
while(int i = get_num()) { // i
cout << i << endl;
}
i = 0; // : i
#3.条件文
C++言語には、2つの条件付き文があります.1つはif文であり、条件に基づいて制御フローを決定する.もう1つはswitch文で、整形式の値を計算し、この値に基づいていくつかの実行パスから1つを選択します.
3.1 if文
if文の役割は,指定された条件が真であるか否かを判断し,判断の結果に基づいて別の文を実行するか否かを決定することである.if文には、elseブランチを含む形式と、ない形式の2つがあります.単純if文の構文は、次のとおりです.
if(condition)
statement
if else文の形式は次のとおりです.
if(condition)
statement
else
statement2
3.2 switch文
switch文は、いくつかの固定オプションで選択できる便利な方法を提供します.
#4.反復文
反復文は通常、条件が満たされるまで停止する操作を繰り返すループと呼ばれます.while文とfor文は、ループを実行する前に条件をチェックし、do while文はループを実行してから条件をチェックします.
4.1 while文
条件が真である限り、while文はループを繰り返し実行し、その構文形式は次のとおりです.
while(condition)
statement
==while条件部分またはwhileサイクル内で定義された変数は、反復するたびに作成から破棄までのプロセスを経験します.==
whileループの使用
何回反復するか分からない場合はwhileループを使用するのが適切です.
vector v;
int i;
// ,
while(cin >> i) {
v.push_back(i);
}
auto beg = v.begin();
while(beg != v.end() && *beg >= 0) {
++beg;
}
if(beg == v.end) {
...
}
4.2従来のfor文
for文の構文:
for(init-statement;condition;expression) {
statement;
}
従来のforサイクルの実行プロセス
次のforループを例に挙げます.
for(decltype(s.size()) index = 0;index != s.size() && !isspace(index);++index) {
s[index] = toupper(s[index]); //
}
評価の順序は次のとおりです.
4.3範囲for文
C++11の新しい標準は、コンテナまたは他のシーケンスのすべての要素を遍歴できるより簡単なfor文を導入した.範囲for文の構文形式は、次のとおりです.
for(declaration:expression)
statement
expressionは、反復器のbeginおよびendメンバーを返すことができる共通の特徴である、カッコで囲まれた初期値リスト、配列、vectorまたはstringなどのオブジェクトなどのシーケンスを表す必要があります.
declarationは、シーケンス内の各要素が変数のタイプに変換できる変数を定義します.タイプが適合していることを確認する最も簡単な方法はautoタイプ説明子を使用することです.
vector ivec = {0,1,2,3,4,5};
for(auto &r : ivec) {
r *= 2; // ivec
}
4.4 do-while文
do-while文はwhile文とよく似ています.唯一の違いは、do-while文がループを実行した後に条件をチェックすることです.条件の値にかかわらず、少なくとも1回のループを実行します.do-while文の構文形式は次のとおりです.
do
statement
while(condition);
#5.ジャンプ文
ジャンプ文は、現在実行されているプロシージャを中断します.C++言語には、break、continue、goto、returnの4つのジャンプ文があります.
5.1 break文
break文は、最も近いwhile、do-while、for、またはswitch文を終了し、これらの文の後の最初の文から実行を続行します.
5.2 continue文
continue文は、最近のループの現在の反復を終了し、すぐに次の反復を開始します.continue文は、for、while、do-whileループの内部、またはそのようなループにネストされた文またはブロックの内部にのみ表示されます.
string buf;
while(cin >> buf && !buf.empty()) {
if(buf[0] != '_')
continue; //
}
5.3 goto文
goto文の役割は、goto文から同じ関数内の別の文に無条件にジャンプすることです.goto文の構文:
goto label;
ここでlabelは、文を識別するための識別子です.ラベル付き文は特殊な文で、その前にラベルとコロンがあります.
end:return; // , goto
#6.try文ブロックと例外処理
異常とは、関数の正常な機能の範囲を超えた実行時に存在する異常な動作を指します.例外処理メカニズムは、プログラム内の例外検出と例外処理の2つの部分のコラボレーションをサポートします.C++言語では、例外処理は次のとおりです.
6.1 throw式
プログラムの異常検出部はthrow式を用いて異常を開始する.
if (item.isbn() != item2.isbn()) {
throw runtime_error("Data must refer to same ISBN");
}
6.2 try文ブロック
try文ブロックの一般的な構文形式は、次のとおりです.
try{
//program-statements
}catch(exception-declaration){
//handler-statements
}catch(exception-declaration){
//handler-statements
}
6.3標準異常
C++標準ライブラリは、標準ライブラリ関数で発生した問題を報告するクラスのセットを定義します.これらの例外クラスは、ユーザーが作成したプログラムでも使用できます.これらの例外クラスは、それぞれ4つのヘッダファイルで定義されます.