Switch Caseとif else if、どちらが高速で優れているか?
2023-09-03 02:49:15
質問
ifとswitchのどちらがより良い、速い方法でしょうか?
if(x==1){
echo "hi";
} else if (x==2){
echo "bye";
}
switch(x){
case 1
...
break;
default;
}
どのように解決するのですか?
最初の例は単純に間違っています。必要なのは
elseif
ではなく、単に
else
.
もしあなたが
if..elseif...
または
switch
は、主に好みの問題です。性能は同じです。
しかし、もしすべての条件が
x == value
で、かつ
x
はどの条件でも同じである。
switch
は通常意味をなします。また、私は
switch
を使うようにします。
というケースは
switch
が実際にパフォーマンス上の利点をもたらすのは、変数の部分が関数呼び出しである場合です。
switch(some_func()) {
case 1: ... break;
case 2: ... break;
}
次に
some_func()
は一度だけ呼ばれますが
if(some_func() == 1) {}
elseif(some_func() == 2) {}
を使うと、関数が二度呼び出されることになります。しかし、あなたはいつでも
$res = some_func();
を使ってから
$res
の中に
if
という条件を追加することで、この問題を完全に回避することができます。
あなたが
できない
が全く使えないのは、より複雑な条件がある場合です。
switch
のみが動作します。
x == y
と
y
は一定値です。
関連
-
[解決済み】警告。数値でない値に遭遇しました
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] 文字列フォーマット:% vs. .format vs. f-stringリテラル
-
[解決済み] switch文の中で変数を宣言してはいけないのはなぜですか?
-
[解決済み] .Any() vs .Count() > 0のどちらのメソッドがより良いパフォーマンスを発揮しますか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み】mysqli_result クラスのオブジェクトを文字列に変換できない
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み] php5パッケージのインストール候補がない (Ubuntu 16.04)
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] 致命的なエラーです。mysqli_result 型のオブジェクトを使用できません [終了] 。