第7話 if の条件を2つ以上必要な場合


 if 文の条件が、二つ以上あった時に使う方法なのですが、一つの番地には、一つのプログラムの方が、後からバグ修正が簡単になるので、可能な限り、一つにしたい。


 そんな時の方法なのですが、if 文を2箇所に置く時のテクニックです。


 例えば、パート・アルバイトの出勤時間の管理を見える化する時の方法です。



A 10 〜 16

B 12 〜 19

C 17 〜 22



 上記のようなシフトになってたとします。


 これを視覚化して見やすいように、下記のような表を作りたいと思ったら、エクセルのような表計算ソフトは簡単に使えます。



  10 11 12 13 14 15 16 17 18 19 20 21

A  ■ ■ ■ ■ ■ ■ ■

B     ■ ■ ■ ■ ■ ■ ■ ■

C             ■ ■ ■ ■ ■


★注意★

スマホの方は、スマホを横にして見てください。



 例えば、Aは、10時から15時のシフトです。


 出勤時間の10時と、退勤時間の15時が、条件となりますので、計算式は、この二つの時間の間だけ、「■」を表示させれば良いのです。


 なので、「■」の入っているマスに、二つの条件式を入れるだけになります。


   時間>=出勤時間

   時間<退勤時間


 この二つの条件を入れて、条件が満たされれば、フラグとして、「■」を表示します。


 この程度のプログラムですと、それ程面倒ではないので、そのまま、一つの番地で条件設定しても構いませんが、2箇所の番地を使う方法を覚えておくと、更に複雑な条件が必要になったときは、簡単に後追いができて、バグ修正が簡単になります。


 例えば、出勤されている時間ごとにフラグを立てておくのです。



    10 11 12 13 14 15 16 17 18 19 20 21

A 出勤 1 1 1 1 1 1 1 1 1 1 1 1

A 退勤 0 0 0 0 0 0 1 1 1 1 1 1


★注意★

スマホの方は、スマホを横にして見てください。



 これは、Aの出勤時間より後の時間に「1」を、そして、Aの退勤時間より後に「1」をフラグとして表示させてます。


 なので、10時以前は、どちらも表示は「0」となってますから、両方を足したら、答えは、「0」ですが、10時から15時の間は、「1」になり、16時以降は、「2」になります。


 Aが出勤している間は、「1」の時だけになり、「0」「2」の時は、出勤してないことになります。


 この答えが、「1」の時だけ「■」を表示するようにすれば、視覚化は簡単になります。


 しかし、この程度のプログラムで、マスを沢山使うとメモリーを多く使いますから、この程度のことなら、一つのマスで処理を済ませた方が良いでしょうが、複雑な処理が必要な時のために、この方法は覚えておいて損は無いと思います。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る