system
上松 博志

2015.8.11システム開発 

システムエンジニア

上松 博志

プログラムの読み方書き方2

システムの上松です。

今回は、Java・PHP・JavaScript・PLSQLでの分岐と繰り返しについてみてみましょう。

●分岐
  ◆Java
 

int iItemCount = 0;
if (iItemCount == 0) {
    java.lang.System.out.println("iItemCountはゼロ!");
} else if (iItemCount == 1) {
    java.lang.System.out.println("iItemCountはイチです!");
} else {
    java.lang.System.out.println("iItemCountはゼロイチ以外");
}

  ◆PHP
 

$iItemCount = 0;
if ($iItemCount == 0) {
    echo "iItemCountはゼロ!<br>";
} else if ($iItemCount == 1) {
    echo "iItemCountはイチです!<br>";
} else {
    echo "iItemCountはゼロイチ以外<br>";
}

  ◆JavaScript
 

var iItemCount = 0;
if (iItemCount == 0) {
    alert("iItemCountはゼロ!");
} else if (iItemCount == 1) {
    alert("iItemCountはイチです!");
} else {
    alert("iItemCountはゼロイチ以外");
}

  ◆PLSQL
 

iItemCount NUMBER;

iItemCount := 0;
IF iItemCount = 0 THEN
    DBMS_OUTPUT.PUT_LINE('iItemCountはゼロ!');
ELSIF iItemCount = 1 THEN
    DBMS_OUTPUT.PUT_LINE('iItemCountはイチです!');
ELSE 
    DBMS_OUTPUT.PUT_LINE('iItemCountはゼロイチ以外');
END IF;

この基本形はどの言語も変わりません。
カッコの扱いと、条件指定分岐(ELSE)の書き方がPLSQLのみちょっと特殊ですね。
言語によってはカッコを書かないif文の書き方もありますが、多重分岐等複雑な判断になると
収拾が付かなくなるので書き方を混在させるのはお勧めはしません。
多重分岐はswitch文にするから関係ない!という意見もあるかもしれませんが、
switch文はとても処理が重いのでパフォーマンスを考えると多重ifのほうが良いこともあります。

●繰り返し
その1:forループ
  ◆Java
 

for (int iIndex = 0; iIndex < 3; iIndex++) {
    java.lang.System.out.println("ループ回数:" + iIndex);
}

  ◆PHP
 

for ($iIndex = 0; $iIndex < 3; $iIndex++) {
    echo "ループ回数:" . $iIndex;
}

  ◆JavaScript
 

for (var iIndex = 0; iIndex < 3; iIndex++) {
    alert("ループ回数:" + iIndex);
}

  ◆PLSQL
 

FOR iIndex IN 0..2 LOOP
    DBMS_OUTPUT.PUT_LINE('ループ回数:' || iIndex);
END LOOP;

その2:whileループ
  ◆Java
 

int iIndex = 0;
while (iIndex < 3) {
    iIndex++;
    java.lang.System.out.println("ループ回数:" + iIndex);
}

  ◆PHP
 

$iIndex = 0;
while ($iIndex < 3) {
    $iIndex++;
    echo "ループ回数:" . $iIndex;
}

  ◆JavaScript
 

var iIndex = 0;
while (iIndex < 3) {
    j++;
    alert("ループ回数:" + iIndex);
}

  ◆PLSQL
 

iIndex NUMBER;
iIndex := 0;
WHILE (iIndex < 3) LOOP
    iIndex := iIndex + 1;
    DBMS_OUTPUT.PUT_LINE('ループ回数:' || iIndex);
END LOOP;

※forループとwhileループでループ回数は同じです。どちらも「3回」繰り返されます。

forループはPLSQL以外は書き方が同じですね。
wheleループはどの言語もあまり書き方の違いはありません。
注意すべきポイントは以下の2つ。

・PLSQPのforループでは何回ループさせるかの添え字の書き方が特殊なこと。
・wheleループでの添え字の変わり方。

特にwhileループの添え字の変わり方は注意が必要です。
例で挙げたループ文は、全てループ回数は3回ですがiIndexの値のとり方が違います。
forループの場合、iIndexは0・1・2、whileループの場合は1・2・3となります。
これは、添え字の変動部分と判定箇所が違うために発生します。
配列からのデータゲット/セットでの良くあるエラー発生箇所ですね。

どの言語でも、分岐と繰り返しの書き方・見方はあまり変わらないですね。
今回上げた以外の言語や環境でも、書き方も判定方法も大きな違いはありません。
基本となる処理は分岐と繰り返しさえ読み書きできれば、新しい言語であっても
内容は理解できるので何をしているかわかるようになります。

開発初心者から新たな言語に触る場合でも、このポイントを押さえておけば
どんな言語でも開発で困ることは少なくなるでしょう。

それでは、今回はこれまで。

現役ウェブ解析士が教えるWebサイトの読み解き方 イメージ
システム開発サービスはこちら
ページTOPへ