Cpp 範囲に基づく for文

提供:yonewiki
2022年9月26日 (月) 10:18時点におけるYo-net (トーク | 投稿記録)による版 (ページの作成:「C PlusPlusへ戻る == '''概要''' ==  for文は、多くのプログラミング言語において繰り返し処理をするための基本的な構文で、for()の引数を ; セミコロンで区切る第一引数から第三引数までをもつ関数です。一つ目は初期化の指定、2つめは条件式、3つめはステップ処理を記述し、2つめの条件式が真である間、for(…){}という表記において{}の部分に書…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

C PlusPlusへ戻る

概要

 for文は、多くのプログラミング言語において繰り返し処理をするための基本的な構文で、for()の引数を ; セミコロンで区切る第一引数から第三引数までをもつ関数です。一つ目は初期化の指定、2つめは条件式、3つめはステップ処理を記述し、2つめの条件式が真である間、for(…){}という表記において{}の部分に書かれた処理もしくは{}が無い場合は次の1つの命令文を繰り返し実行するものです。

 変数 iCnt が0から始まって、iCntが10以下の間 i を1ずつ増やしながら10回処理するfor文の使用例としては以下のようになります。

for(int i=10; i<10; i++){
    Cpp's statement...
}


 上記の構文は基本的なことなのであまり説明はしません。重要なのはここからです。C++のC++11から使えるようになった範囲に基づく for文 ですが、これは他の言語ではよくforeach as という感じの命令が用意されていて、引数に与えられた配列の順序開始位置から終了位置までの要素を個別要素格納変数を使いながら、繰り返すという処理が採用されていてC++には無い技術でありながら便利だったものを取り入れたものです。古くらからC++言語を扱う人には理解しにくい構文です。for文をそのまま活用して以下のようにして使います。

for(auto& arg : argvUTF8Q){
    Cpp's statement...
}

 上記のように引数を一つしかとらない記述方法です。コンストラクタと同じような : コロンを使った初期化子で、配列あるいはIterator要素番号を使うオブジェクトの最初から最後までを使った処理を繰り返す事を意味していて、その手前に書かれた変数が個別の値を受け取る変数になります。ここで初めて初期化される変数でもfor文内では有効になります。


 受け取る変数の型名はいわゆる推論で決められる型でよければautoを使えば良いです。

 

C PlusPlusへ戻る