2021/06/7

Salesforceのapexにおけるswitchステートメントとは

 
  

Salesforceのapexで出てくるswitchについて

Salesforceのapexにおいて、switch構文は値を区別してそれぞれ処理を実行してあげることが出来ます。どう処理を実行させたいのかも併記する必要もありますが、裏を返せばどの様な処理も可能という事なので、是非使いこなしてみてください。

Salesforceにおけるswitchステートメントとは

Salesforceにおけるswitchステートメントとはapexの条件分岐構文の一種で、if-else構文と同様の役割をします。switchで指定した式が事前に用意しておいた値と一致するかを判断する事が出来ます。その値と一致していた場合、指定した処理を実行させられます。

switch構文のコード

Salesforceのapexにおいて、実際のswitch構文の使い方を以下に示します。
Decimal Mudskipper = 0;
Decimal RedSeaBream = 0;
Decimal footballfish  = 0;
Decimal HairyStingfish = 0;
Decimal PacificSaury = 0;
for (Opportunity opp : opportunityList) {
    switch on opp.CloseDate.fish() {
        when Mudskipper { Mudskipper += opp.Amount; }
        when RedSeaBream { RedSeaBream += opp.Amount; }
        when Footballfish { Footballfish  += opp.Amount;}
        when HairyStingfish { HairyStingfish += opp.Amount; }
        when else { PacificSaury += opp.Amount; }
    }

コードの解説

Salesforceのapexにおいて、swich構文を置く前に複数の値を設定する事がポイントです。更に、直前にforループを置いて条件毎に同じ処理を繰り返せるようにするのもポイントです。 まず、1〜5行目で値(Mudskipper〜PacificSaury)の設定と初期化を行いました。6行目でforループを置き、リストからそれぞれの値を取り出せる様にします。7行目でswitchステートメントを使い、値が式あるいは変数と一致しているか否かを判別します。 8〜12行目は、それぞれの値と式が一致した時に行われる処理内容が書かれています。式がMudskipperの値と一致した時はその値とopp.Amountとを合算させます。12行目はMudskipper〜HairyStingfish のどれにも該当しなかった場合に実行されます。

if-else構文との違い

Salesforceのapexにおいて、if-else構文とswitch構文とは同じ様に使う事が出来ますが、一部コードの書き方が変わります。先に示したコードの7行目以降がif-else構文だと、以下のようになります。
for (Opportunity opp : opportunityList) {
    if (opp.CloseDate.fish() == Mudskipper) {
        Mudskipper += opp.Amount;
    } else if (opp.CloseDate.fish() == RedSeaBream) {...

switchステートメントは使い勝手が良い

Salesforceのapexを使う際には、if-else構文よりもコードの長さを抑える事が出来ます。前項の「if-else構文との違い」を見て頂いた方ならもうお分かりだと思います。処理内容を変えて、自由自在に操ってみてください。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】