typeで宣言した処理について

解決


GEGE  2009-06-01 18:27:47  No: 34590

typeについて教えてください。
type THoge = ( hoge1,hoge2,hoge3,hoge4);

Fuse :THoge;

などとかいて
Fuse:= hoge1;  や
if Fuse = hoge2 then
などに利用しています。

そこで質問ですが、hoge1〜hoge4は文字列でも数値でもないため、扱いが難しいです。
実は  
if Fuse=hoge3 then
  Fuse:= hoge3 -1;  ※1

見たいなhoge3の一個前の状態に戻すようなことをしたいと考えています。
※1の所でFuse:=hoge2としてしまえばよいという話ですが、色々な意味で使用したいのであくまでも「hoge3 -1」というやり方でやりたいです。
何か良い方法教えてください。

よろしくお願いします。


ttt  2009-06-01 19:17:14  No: 34591

typeと言ってしまうと表す幅が広いので……そういうのは順序型の一種で「列挙型」と言います。
順序型で一つ前や後ろの値を取り出すのはPredとSuccですね。(状況によってはIncやDecも使えますが)
if Fuse = hoge3 then Fuse = Pred(hoge3);
または
if Fuse = hoge3 then Dec(Fuse);


GEGE  2009-06-01 20:41:16  No: 34592

列挙型ですね…。
Predというのを使えばよいのですね。
わかりましたtttさんありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加