カテゴリー: BackEnd

PHP、Ruby、Pythonのfor構文を比較してみた

はじめに

最近、個人的にPythonをやっています、tonnyです。

先日Pythonでfor構文を使用したのですが、そういえばよく分かっていなかったな、と思いこの機にPHP、Rubyと比較してみたいと思います。

環境

  • PHP 7.1.0
  • Ruby 2.4.0
  • Python 3.5.2

ドキュメント

比較してみると、PHPだけ違いますね。

PHP

制御構造#for

for ループは、PHPで最も複雑なループです。 for は、Cのforループと同様に動作します。 forループの構文は、次のようになります。

for (式1; 式2; 式3)
    文

最初の式(式1)は、ループ開始時に無条件に 評価(実行)されます。

各繰り返しの開始時に、式2が評価されます。 その式の値がTRUEが場合、ループは継続され、括弧 内の文が実行されます。値がFALSEの場合、ループの 実行は終了します。

Ruby

制御構造#for

式を評価した結果のオブジェクトの各要素に対して本体を繰り返し て実行します。

Python

その他の制御フローツール#for

for文は、シーケンス (文字列、タプルまたはリスト) や、その他の反復可能なオブジェクト (iterable object) 内の要素に渡って反復処理を行うために使われます

1から100まで出力してみる

PHP

php > for ($i=1; $i<=100; $i++) {
php { var_dump($i);
php { }
int(1)
int(2)
int(3)
// 以下省略

Ruby

>> for i in 1..100
>> p i
>> end
1
2
3
#  以下省略

Python

Pythonでは規則的な数字のリストであれば、range()関数を使用することが一般的なようです。

>>> for i in range(1,101):
...     print(i)
... 
1
2
3
# 以下省略

リスト型(配列)の出力

これはなんか無理やりです。

PHP

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

>> for i in ["apple","orange","grape"]
>> p i
>> end
"apple"
"orange"
"grape"
=> ["apple", "orange", "grape"]

Python

>>> for i in ["apple", "orange", "grape"]:
...     print(i)
... 
apple
orange
grape

さいごに

簡単ですがまとめてみました。
(正直for構文だけでは例題に窮しました笑)

2つめの「リスト型(配列)の出力」は、eachやforeachを使うのが一般的かと思います。

 

naoki85

シェア
執筆者:
naoki85
タグ: Ruby

最近の投稿

go 1.24の tool directive でツールを管理する

はじめに プロダクト開発を行う…

1か月 前

uvの本番環境用dockerのマルチステージビルド

はじめに uvで本番環境のdo…

2か月 前

Go 1.24で追加されたweak pointer

はじめに 前回の記事では、Go…

3か月 前

Next.jsでサイトマップの実装

はじめに Next.jsでサイ…

4か月 前