PHPerがJavaとKotlinを触ってみた – if文 –


こんにちは!はしもとです。

 

前回は、PHPerがJavaとKotlinを触ってみた – for文 –を紹介しました。

今回は「if文」についてです。

 

 

if文

if文は、分岐処理として用いられます。これも、基本的な関数となります。

恐らく、ほぼどの言語でも分岐処理として、if文があるのではないでしょうか。

 

PHPでif文を書いてみた

public static function checkIf($testCount) {
    if ($testCount < 10) {
        echo "10未満です";
    } else if ($testCount == 10) {
        echo "10です";
    } else {
        echo "10より大きい数値です";
    }
}

 

至って普通かと思います。ただ、PHPの場合、「else if」の書き方が2通りあります。

elseif () {}

else if () {}

どっちでも「else if」としての動きを果たします。

 

一般的には「else if」とスペースを空けるのが主流かと思うのですが、PSRと呼ばれるPHPのコーディング規約によれば、

「elseif」とスペースを空けないようにしましょうと決められています。

 

好みな部分はあるかも知れませんが、私は「else if」派です。

 

 

Javaでif文を書いてみた

public static void checkIf(int testCount) {
    if (testCount < 10) {
        System.out.println("10未満です");
    } else if (testCount == 10) {
        System.out.println("10です");
    } else {
        System.out.println("10より大きい数値です");
    }
}

 

 

「else if」での比較ですが、PHPの場合「==」と「===」で比較することが出来ます。

 

・「==」は、型一致は見ません。つまり「o」(int型)と「’o’」(string型)は同じものとして扱います。

・「===」は、型一致までチェックします。

 

余談ですが、「===」の方が実行速度が早いようです。

 

というわけで、Javaは「===」があるのか調べてみた所、もちろんIDE上でエラーとなりました。

 

PHPerですが、書いているうちにPHPがどんどん不思議に思えてきました…。

 

無論ですが、Javaで「elseif」と書いたら、エラーになりました。

 

 

Kotlinでif文を書いてみた

fun checkIf(testCount: Int) {
    if (testCount < 10) {
        println("10未満です")
    } else if (testCount == 10) {
        println("10です")
    } else {
        println("10より大きい数値です")
    }
}

 

Kotlinでも同じく「===」と「elseif」を試してみましたが、「===」はエラーがでませんでした。

 

「なぜ?」ということで調べたところ、「===は、同じオブジェクトを指しているかどうか」を判定しているとのことでした。

参考サイト:kotlin reference

はしもとのひとりごと

if文ということで、「そんなに言語によって変わらないだろう」と思ったら、意外と奥が深かったです。

特に比較演算子です。

 

「===」がかなりの曲者です。PHPが独特なのか、Kotlinの方が一般的なのか判りません…。

 

 

0

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)