• ベストアンサー

数式について…

こんにちわ(^^)。えっとVB開発なんですけれども 数式が分からないもので、質問させていただきます。 例えば、 1⇒2⇒3⇒4⇒5⇒1⇒2 … 上図のようにある一定の数値をぐるぐる回す数式というのが、VBでいう IntCnt = (IntCnt Mod 数字の個数) + 1 (例:IntCnt = 1 のとき、答え IntCnt = 2    IntCnt = 5 のとき、答え IntCnt = 1) になるのはわかっているのですが、その逆がわからなくて困っています…(T T)。 つまり 5⇒4⇒3⇒2⇒1⇒5⇒4 … のようになる数式わかりますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.2

x = x - 1 - (x = 1) * 5 今はこんな書き方しないほうがいいのかな・・・ もう一つ。 x = 5 - (6 - x) mod 5

guruguru2
質問者

お礼

>x = 5 - (6 - x) mod 5 使用させていただきます(> <)/ ありがとうございます!!

その他の回答 (2)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.3

> 5⇒4⇒3⇒2⇒1⇒5⇒4 … 無理に1行で書く必要が無ければ、以下のように場合分けしてはいかがでしょう? If IntCnt = 1 Then  ' 1⇒5  IntCnt = 5 Else  ' それ以外は1減算  IntCnt = IntCnt - 1 EndIf -- 無理矢理計算させると、 IntCnt = ((IntCnt + 3) Mod 5) + 1 のような式でもOKの気がしますが、これが正解というわけでなく、考え方の1つとしてこういう方法もありますよと言う程度に読んでください。 こういうのは、暗記とかするものでは無いと思いますし。

guruguru2
質問者

お礼

ありがとうございます。いろいろ数式はあるんですね(^^) 長いコードになってしまいそうなので、 If文を使用しなくても出来そうなところはやろうと思いまして…。(^^> ありがとうございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 ベタでかっこ悪いですが。 IntCnt = IIf(IntCnt = 1, 5, IntCnt - 1) ただし、必ずIntCntの初期値は1~5にして下さい。

guruguru2
質問者

お礼

早速のかいとうありがとうございます。(^^)参考にさせていただきます。

関連するQ&A