Re: こんなコード書く?
神戸です。
On Fri, 11 Mar 2005 22:49:49 +0900, IIJIMA Hiromitsu
<delmonta@ht.sakura.ne.jp> wrote:
> いいじまです。
>> > return ((n<1||n>12)?name[0]:name[n]);
>> > 私なら通常はif文で書きますけど(例外:式しか書けない場所)、
>> > 皆さんはこういうコードは書きます?
> あはは。書き忘れていましたけど、name[] は
> char *name[13] = {"", "Jan", "Feb", "Mar", "Apr", "May", "Jun",
> "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
> のように初期化されています。だから12でいいんです。
nは月コードみたいですが、
この配列のように月の値が未定などの特殊値がnにあるなら
このreturnに到達する前nの設定のときにnに0をキッチリ設定した上で
0を範囲内に含めて考え、
範囲外かどうかの検査にはassert()や動的なエラー処理コードを書いたほうがいいような…。
/* C++の場合、動的に異常が起こりうるコードなら例外を投げるかも。*/
/* C/C++の列挙型がもうちょっと使える仕様だとよかったんですけどね。 Java 1.5 "Tiger"の列挙型の説明読んでて思いました。
後知恵の類ではありますが。*/
/* 三項演算子によって式内で条件判定ができ、定数式にもなるという性質は
C++のテンプレート・メタ・プログラミングで重宝してます。 */
--
http://www.nerimadors.or.jp/~kando/
kando@nerimadors.or.jp
kando_takayuki@hotmail.com : MSN Messenger
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735