forサイクル、強化forとwhileの使い方の違い


ループ文はベースのプログラミングに必須ですが、最も一般的なのは2つのforループとwhileループです.もう1つの一般的ではないのはforループを強化することですが、このループ文を適切に使用すると、ループの効率が大幅に向上します.
forサイクル
フォーマット:for(ループ変数付与初期値;ループ条件;ループ変数付加価値)文これはforループの一般的な書き方であり、実際の状況に応じて変換することができる.
変換:
  • for文の一般的なフォーマットの「ループ変数付与値」は省略できますが、forループの前にループ変数を定義して付与する必要があります.注意どの式を省略しても、forループの2つのセミコロンは省けません.
  • 「ループ条件」を省略する場合、すなわちループ条件を判断しない場合、デフォルトのループ条件は常に真であるため、このループは終了しないループになります.
  • 「サイクル変数付加価値」も省略でき、省略するとサイクル変数は変化しないのでサイクル条件は失効し、サイクル体中でサイクル変数を処理しないと、サイクルは無限のデッドサイクルに入り、そのたびに完全に同じである.したがって,ループ文ではループ変数を自動的に変更し,ループ条件を超えてループを終了する効果を達成するように工夫する必要がある.
  • ですので、上記のいくつかの項目から「サイクル条件」だけが必要不可欠であることがわかりますので、「サイクル条件」だけを保持することができます.

  • コードの表示:
    #include 
    using namespace std;
     
    int main ()
    {
       // for     
       for( int a = 0; a < 5; a = ++ )
       {
           cout << "a   :" << a << endl;
       }
       return 0;
    }
    

    出力の結果、aの値:0 aの値:1 aの値:2 aの値:3 aの値:4
    強化forサイクル
    フォーマット:for(ループ変数名:変数値範囲)文
    コードの表示:
    #include  
    #include  
    using namespace std;  
      
    int main()  
    {  
        int array[5] = {1, 2, 3, 4, 5};
        // range for     
        for(auto &c : array)  
        {  
         cout << c << endl;  
        }  
        return 0;  
    }
    

    出力結果:1 2 3 4 5
    whileサイクル
    フォーマット:while(ループ条件){ループ文}
    コードの表示:
    #include  
    #include  
    using namespace std;  
      
    int main()  
    {  
      int i=0;
      while(i<5)
      {
      cout<<i<<endl;
      i++;
      }
    }
    

    出力結果:0 1 2 3 4
    まとめ(ポイント)
    3つのループ文にはそれぞれの使用状況があり、ループ文を合理的に運用することでプログラムの実行効率を効果的に向上させることができます.
  • forループについては、ループ中にループ変数がループごとに自動的に変化するため、ループ文でインデックスが必要な場合はforループを使用する必要があります.通常、ループ変数は自己増加(または自己減少)であるためです.
  • 強化forループの場合、比較forループであり、ループ文にインデックスは必要ありません.
  • whileループでは、ループ条件のみが必要であるため、処理前にデータの長さが分からないことが多い.一方、forループと比較すると、forループはループ変数の初期値と範囲があるため、forループは一般的に既知のデータの長さに用いられる.