システムブログ システムソリューションのメンバーが
システムの素晴らしさを紹介いたします

株式会社東洋のシステム開発は、無駄のない仕様をはじめ、簡単な入力画面や検索機能が人気です。
システムソリューションのメンバーがその素晴らしい機能をひとつずつ紹介いたします。

QuestPlusの言語仕様 〜制御文について(その2)〜

今回も、弊社で開発しております販売管理システムQuestPlusの主コンピュータ言語であるJavaの一部の言語仕様を紹介させて頂きます。(その7です。)

今回も、制御文についてで、特にその中の繰り返しについてです。

プログラムでは、繰り返し処理したい需要が多々あります。
繰り返しでは、「永遠に行う(繰り返しから抜ける方法はある)」とか、「○○の条件が成立する間、△△する」などの処理です。

上記を実行すると、

のように表示されます。
「int i = 0」は初期処理です。繰り返し処理が行われる前に実行されます。
次の「i < 5」は条件です。初期処理の実行後に判定されます。
この条件が成立する間、繰り返しブロック(「{」と「}」で囲まれた間にある処理)が行われます。
最初から条件が成立しない場合、1回もブロックが行われません。

最後の「i++」は、ブロックが行われ、次の判定が行われる前に行われます。
この繰り返し処理は、変数を0から4まで1づつ変化させ、その値を表示します。

上記は、前述の「for」文と同一です。
処理の内容等により、書き易いとか分かり易いなどを優先して書き分けます。

このdo文は、「i < 5」という条件だと前述のwhile文と同じになります。
しかし、例えば「i < 0」のように条件が一度も成立しない場合は、結果が異なります。
「i < 0」ならwhile文では何も表示されず、do文だと「DBG: i=0」が表示されます。
do文は、条件がブロック処理を行ってから評価されますので、条件の真偽に関わらず必ず最低1回はブロック処理を行います。
余り使われない文ですが、偶には使う方が効率的なロジックもあります。

繰り返しブロック内では、「continue」や「break」で更に制御できます。
「continue」は英語で「続く」という意味の通り、ブロックの後の処理は行わず次の繰り返し処理に続きます(この例では、「i++」に続く)。
これは一時的に処理を飛ばす時に使われます。
「break」は英語で「中断する」という意味の通り、繰り返し処理を中断します。
条件文に入れ難いものを入れます。
「break」は、ラベルに飛んで多重ループから抜け出すなどの制御も行えますが、これは推奨しない考えの人もいる制御なので今回の紹介では取り上げません。

for文の特殊例として、以下のような「変数宣言:複数の変数を持つ集合」のような形式で書くこともできます。

配列やListなど複数の同一の型の変数を持つ集合に対して、Java言語で規定されたものだけですが、このような使い方ができます。
記述量が少なくて済み、すっきりして分かり易いという利点があります。

以上、Java言語の一部の言語仕様の紹介でした。