はじめに
最近、個人的にPythonをやっています、tonnyです。
先日Pythonで
for
構文を使用したのですが、そういえばよく分かっていなかったな、と思いこの機にPHP、Rubyと比較してみたいと思います。
環境
- PHP 7.1.0
- Ruby 2.4.0
- Python 3.5.2
ドキュメント
比較してみると、PHPだけ違いますね。
PHP
for ループは、PHPで最も複雑なループです。 for は、Cのforループと同様に動作します。 forループの構文は、次のようになります。
12 for (式1; 式2; 式3)文最初の式(式1)は、ループ開始時に無条件に 評価(実行)されます。
各繰り返しの開始時に、式2が評価されます。 その式の値が
TRUE
が場合、ループは継続され、括弧 内の文が実行されます。値がFALSE
の場合、ループの 実行は終了します。
Ruby
式を評価した結果のオブジェクトの各要素に対して本体を繰り返し て実行します。
Python
for文は、シーケンス (文字列、タプルまたはリスト) や、その他の反復可能なオブジェクト (iterable object) 内の要素に渡って反復処理を行うために使われます
1から100まで出力してみる
PHP
1 2 3 4 5 6 7 | php > for ($i=1; $i<=100; $i++) { php { var_dump($i); php { } int(1) int(2) int(3) // 以下省略 |
Ruby
1 2 3 4 5 6 7 | >> for i in 1..100 >> p i >> end 1 2 3 # 以下省略 |
Python
Pythonでは規則的な数字のリストであれば、range()関数を使用することが一般的なようです。
1 2 3 4 5 6 7 | >>> for i in range(1,101): ... print(i) ... 1 2 3 # 以下省略 |
リスト型(配列)の出力
これはなんか無理やりです。
PHP
1 2 3 4 5 6 7 | php > $fruits = ["apple","orange","grape"]; php > for($i=0;$i<count($fruits);$i++) { php { var_dump($fruits[$i]); php { } string(5) "apple" string(6) "orange" string(5) "grape" |
Ruby
1 2 3 4 5 6 7 | >> for i in ["apple","orange","grape"] >> p i >> end "apple" "orange" "grape" => ["apple", "orange", "grape"] |
Python
1 2 3 4 5 6 | >>> for i in ["apple", "orange", "grape"]: ... print(i) ... apple orange grape |
さいごに
簡単ですがまとめてみました。
(正直
for
構文だけでは例題に窮しました笑)
2つめの「リスト型(配列)の出力」は、eachやforeachを使うのが一般的かと思います。