-内容のまとめ
書いてあった内容の概要です

expandコードリーディングの続き。

  • getstops関数解析

  • for文の詳説

    • 繰り返す回数に注意
      3つの式の評価について
      無限ループ形成

    -練習問題


    (2.16) C系の言語のforステートメントはとても柔軟性がある。本書に掲載されているソースコードを調べ、10種類の用法を列挙しなさい。
    P38. リスト2.4 無限ループする
    P58. リスト2.10 バイナリサーチ
    P83. 冒頭 オブジェクトのポインタをたどる
    P107. 上段 2次元配列にアクセスする
    P113. 中段 リングバッファへのアクセス
    P123. 中段 連結リストのすべての要素に操作を適用する
    P124. 下段 連結リストの要素を削除する
    P129. 中段 ハッシュ関数を使って連結リストにアクセスする
    P309. リスト9.7 プロセスを一つずつたどる



    (2.17) この節の例を、forではなくwhileで表現しなさい。どちらの表現が読みやすいかを検討しなさい。

    例1:

     for(i = 0; i < len; i++){} 
    whileに書き換え:
     i = 0;
    while(i < len){
    hoge
    i++;
    }

    例2:

     for(i = 0; i <= extrknt; i++){} 
    whileに書き換え:
     i = 0;
    while(i <= extrknt){
    hoge
    i++;
    }

    例3:

     for(i = 1; i < extrknt; i++){} 
    whileに書き換え:
     i = 1;
    while(i < extrknt){
    hoge
    i++;
    }

    まだまだ例あるけど・・・カット!
    要するに
    while文の直前に変数初期化文を記述
    while()の括弧内に繰り返しの条件を記述
    while{}文の最後に変数のインクリメント等を記述
    すればいい。

    読みやすさは,3つの条件を記述する必要がある時はfor文が読みやすい。
    繰り返しの条件のみでよいとき、無限ループ等はwhile文が読みやすい。
    理由:記述量が減るから。



    (2.18) C系の言語のforステートメントはとても柔軟性がある。本書に掲載されているソースコードを調べ、10種類の用法を列挙しなさい。