今日は久しぶりにプログラムを組むにあたってちょっと悩んでました。
比較的よくあるパターンの処理なのですがどう書くとスマートに書けるかというのがね(汗)
内容はテーブルの項目Aが変更になったタイミングでそこまでの項目Bの値を集計するというもの。
基本的にはループ処理の中で前回の項目Aの値を保持して今回の項目Aの値と比較することになるのですが、書き方にもよりますがここで問題なのが一番最後の集計です(ここではForループでお考え下さい)
と、いうのもループ処理の中で比較を行うと最終レコードの次を見に行ったと同時にループを抜けてしまうので集計処理を通らなくなってしまいます。
かと言って今回の値と次の値みたいに先読みすると最終レコードの次を見に行こうとするとエラーになってしまいます。
仕方ないので「レコードは最後か?」と「今回と次回の項目Aは同じか?」のふたつの判定を入れて対処したのですがもっと奇麗に書けた筈なんですよねぇ。
多分Do Loopを使って書いた方がスマートに書けたんだろうなぁ、失敗しました(´・ω・`)
プログラムは動くのが大前提ですけどその次として誰でも理解出来るコードを書くのも大切です。
あまりこだわり過ぎて時間が掛かってしまうのでは本末転倒ですけどね(苦笑)