第5章:文

5290 ワード

  • #1.単純文
  • #2.文の役割ドメイン
  • #3.じょうけんステートメント
  • 3.1 if文
  • 3.2 switch文
  • #4.反復文
  • 4.1 while文
  • 4.2従来のfor文
  • 4.3範囲for文
  • 4.4 do while文
  • #5.ジャンプステートメント
  • 5.1 break文
  • 5.2 continue文
  • 5.3 goto文
  • #6.TRY文ブロックと例外処理
  • 6.1 throw式
  • 6.2 try文ブロック
  • 6.3標準異常

  • #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]); //            
    }
    

    評価の順序は次のとおりです.
  • サイクルが開始され、まずinit-statementが実行される.この例ではindexを定義し、0に初期化します.
  • は次にconditionを判断する.indexがs.size()に等しくなく、s[index]位置の文字が空白でない場合、forループの内容が実行されます.そうでなければ、ループは終了します.最初の反復時の条件が偽の場合、forループは一度も実行されません.
  • 条件が真の場合、循環体が実行される.この例では、s[index]位置の文字を大文字に書き換えます.
  • は最後にexpressionを実行する.この例ではindexの値に1を加算します.

  • 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++言語では、例外処理は次のとおりです.
  • throw式で、異常検出部はthrow式を使用して処理できない問題が発生したことを示します.すなわちthrowが異常を引き起こした.
  • try文ブロック、異常処理部はtry文ブロックを用いて異常を処理する.try文ブロックはキーワードtryで始まり、1つ以上のcatch文で終わる.try文ブロック内のコードから放出される異常は、通常、あるcatch文で処理されます.したがってcatch文は異常を処理するので、異常処理コードとも呼ばれる.
  • throw式と関連するcatch文の間で異常の具体的な情報を伝達するための異常クラス.

  • 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つのヘッダファイルで定義されます.
  • exceptionヘッダファイルは、最も一般的な例外クラスexceptionを定義します.異常の発生のみを報告し、追加の情報は提供しません.
  • stdexceptヘッダファイルは、いくつかの一般的な例外クラスを定義します.
  • newヘッダファイルはbad_を定義しますalloc異常タイプ.
  • type_infoヘッダファイルはbad_を定義しますcast異常タイプ.