2018年
平成30年 昭和93年
320日経過 残り45日
16
営業日
11月 金曜日
Nov 霜月 Fri 赤口
November Friday
今月営業日
009 / 021 日
今月休業日
005 / 009 日
今年営業日
018 / 241 日
お知らせNo.339. SSLはじめました。 2017/12/18
お知らせNo.305. ユーザー様整理いたします 2017/09/28
お知らせNo.223. Firefoxのパスワード記憶について 2017/03/23
お知らせNo.218. プラグイン機能の説明を作成しました。 2017/03/22
お知らせNo.211. LINEを公開しました。 2017/03/17




USER:
PASS:
新規登録
  • BBSみしお より
  • BBSみしお より
  • BBSみしお より
1人の会員

1
Unique
Visitors
Powered By Google Analytics
インフォトップ公告表示プラグインの実演です。

if文のかたち

担当@みしお 開始日:2017年10月20日

if文は便利なのでいっぱい条件分岐に利用します。
でも便利だからといってどんどん使うとこまったことになるので用法容量、は守らなくてもいいのですがあるていど自分でコレダという方法があると、めんどうなことになる率が下がります。

まずIf分はTrueで書きましょう。
Trueを拾う場合、参照値を用意しなくてもいいという特権が利用できます。
しかし数字の1でも動作してしまうので、使い方はブーリアンであることを厳格にたもつべきです。
そうでなければTrueを書くか条件フラグを他の物と勘違いしないものに書き換えて確実に利用するのがよいでしょう。
足し算させますが宣言はしておらず、数字がはいっていれば条件が満ちるとした場合足し算の結果が1でも通過しますしExistsは数値でないもの(浮動小数点演算してしまった結果)などでも動く可能性があります。
精査して「通過」と明確なフラグを、そうとう急ぎである場合は明示してあげるのが間違いを減らすポイント1です。

ポイント2は、できるだけ最小単位で条件を確認させます。
Aである場合とBである場合かつCでない場合を、といった構文をひとつにするとスマートですが、見た目はスマートですがちょっとまってください。
人として、そういう注文をうけたときはきれいにさばけますか?スタバのメニューをさらりと唱えてどういうトッピングか理解できますか。
まずすべて一つずつ条件を確認して、見たれたかどうかを使うべきです。
バイナリであってもかさなるたびに二乗されていって、正しい条件かわからなくなるものです。
そして遅くなります。複数の場合はswitchを、switch(true)という使い方で条件構文を複数持つことも可能ですし、トップダウンなので条件の構造を上位から継承してもよいでしょう。
ifの多重については気を付けましょう。

ここでちょっと小話、条件確認はtrueで、そしてフラグ判断は加算で要項がふえればふえたぶんだけ併設しましょう。
会計をされている方は「マイナス要項をマイナス個数分”加算”しなくてはいけない」といえばご理解いただけるかと思いますが、トータルで判断する、という場合で複数に分岐があるとき、増減を単一の値で示す方法はありません。
桁数をすみわけに固定長をつかうとかあると思いますが実質2系統にしているわけでおなじことです。
2次元的なものを1変数にするとやっぱり1次元結果しかないので最終的に同数の反対結果がかさなってしまいます。
なのでどちらの方向について計算するにしても、加算でのみ表せる式は加算で構造をつくるとあとからわかりやすいです。

閑話休題、if分ですが、さんざんちゃんと確実な演算結果で判断しましょうと言った矢先、横着な使い方もできます。
横着を考慮したうえで、あくまで厳密に書くようになっていただけると幸いです。

たとえば関数など実行結果がある、成功したなどの結果を式ごとifに入れることができます。
一時変数を極力つかわないスリムなプログラムがつくれますが、さかのぼるときものすごく面倒になります。

わかりやすいプログラム、匠の技でくみ上げた宮大工プログラムなどあるかと思いますが、まずはもっさりごつくはなりますが全行に判断状態を書きこめるくらいにIFを使ってみてはいかがでしょうか。


このページはログインするとコメントを記入できます。
先頭に戻る