2021/02/12

Salesforce拡張時に使われるif-else文とは?使い方や注意点も紹介

 
  

Salesforce拡張時に使われるif-else文とは?

if-else文とはSalesforceのアプリケーション・プラットフォームを拡張するプログラミング言語であるApexにおける条件(if-else)ステートメントです。Apexの条件(if-Else)ステートメントは、Javaと同じように動作します。 例えば、xという変数が1ならAの処理を、2ならBの処理を、といったプログラムを書く際に使われます。

Apexにおけるif-elseの概要

Salesforceの機能拡張時に使われる条件(if-Else)ステートメントは条件分岐するプログラムを書く際に使います。特定の項目や変数を参照して、もしある条件を満たしていればこの処理を、そうでなければこの処理を、というように使います。 ちなみに、条件(if-else)ステートメントはif文、if-else文と言われることがあります。本記事でもこの呼び方を使います。

基本的なif文

String weather;
String plan;

// 天気が晴れの場合
weather = '晴れ';

if (weather== '晴れ'){
    plan = '買い物に出かける';
} else {
    plan = '家の掃除をする';
}
上のコードでは、もし天気が晴れなら買い物に出かけよう、そうでなければ家の掃除をしよう、という内容をif文で表しています。 この場合、変数weatherが「晴れ」なので変数planには「買い物に出かける」が代入されます。 しかし、もしweatherが「晴れ」ではなく「曇り」や「雨」など、「晴れ」以外のものが入っていた場合は、planにはelseの後ろに書かれている処理、「家の掃除をする」が代入されるわけです。

else ifの使い方

else-ifを使うことで、if文の条件を満たさなかった場合にさらに条件分岐が可能です。
String weather;
Integer temperature;
String plan;

// 天気が曇りで、気温が15度以上の場合
weather = '曇り';
temperature = 17;

if (weather== '晴れ'){
    plan = '買い物に出かける';
} else if (temperature >= 15){
    plan = '散歩をする';
} else {
    plan = '家の掃除をする';
}
else ifを使って、「晴れ」でない場合についてさらに条件分岐しています。変数temperatureが15以上であれば、変数planは「散歩をする」が代入されます。そして、その条件も満たさなかった場合、planには「家の掃除をする」が代入されることになります。

Apexにおけるif-elseの注意点

SalesforceにおけるApexコードの条件分岐(if-Else)ステートメントには同じ内容のif文でもいくつかの書き方があるなど、注意点があります。知らないコードが出てきたと混乱しないようにこちらも覚えておきましょう。

elseの省略

Apexのif文は常にelseの省略が可能です。
if (x > 2){
    System.debug('xは2より大きいです');
}
この場合、xが2より大きいときにだけif文内の処理が行われ、そうでない場合は何も処理が行われません。

{}の省略

if (x == 1)
    y = 1;
else
    y = 0;
処理する文が1つである場合、「{}」を省略することができます。行数が少なくシンプルな見た目になりますが、修正で処理の文が増えた場合などに「{}」のつけ忘れに注意が必要です。 また、処理の文を同じ行に書くことも可能です。
if (x == 1) y = 1; else y = 0;

ifの入れ子構造

if文の中にさらにif文を書くことができます。これを「入れ子」や「ネスト」などと呼びます。
String weather, plan;
Integer temperature;

 // weatherが'晴れ'でtemperatureが20の場合
weather = '晴れ';
temperature = 20;

if (weather == '晴れ'){
    if(temperature >= 15){
        plan = '買い物に出かける';
    }
}
この場合、変数weatherが「晴れ」であり、なおかつ変数temperatureが15以上の場合だけ変数planに「買い物に出かける」が代入されます。それ以外の場合は変数planに代入することなく処理が終了します。

入れ子構造の{}の省略

また、上記の入れ子構造のif文はこのように書くこともできます。
if (weather == '晴れ') if (temperature >= 15) plan = '買い物に出かける';
1行で書くことができましたが、この書き方に慣れていないとわかりづらいでしょう。もしこの書き方をする場合は可読性が落ちないか、修正する際にわかりやすいかなどに注意しましょう。

条件分岐(if-else)ステートメントを使いSalesforceの拡張に活用しよう!

今回はSalesforceで使われるApexコードの条件分岐(if-Eelse)ステートメントについて紹介しました。 条件分岐はSalesforceの機能拡張のプログラムを組む際にとても重要な制御構造です。本記事で理解を深めてSalesforceを利用する際に活用できるようにしておきましょう。]]>

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

この記事の監修者・著者

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

おすすめの動画

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

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

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