• ベストアンサー

for文のstepについて

for i=1 to 10 step 4と書くと i=1 5 9の順番だと思いますが、 一番最後のi=10も処理して欲しいのですが、 そのようなことは出来ますか?

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

  • ベストアンサー
回答No.4

Private Sub コマンド6_Click()   Dim I As Integer   Dim J As Integer   Dim S As Integer   J = 10   S = 4   For I = 1 To J Step S     Debug.Print I     If I + S > J And I <> J Then       I = J - S     End If   Next I End Sub 理屈は前の回答と同じです。

その他の回答 (3)

回答No.3

Private Sub コマンド6_Click()   Dim I As Integer   For I = 1 To 10 Step 4     Debug.Print I     If I = 9 Then       I = 6     End If   Next I End Sub コード中に9、6というマジックナンバーを埋め込むので推奨されるやり方ではありませんが・・・。

miya2004
質問者

お礼

ありがとうございます。 ちなみに、開始No終了Noステップ数は変数なので、 今は、i mod step=1か最終Noの時、処理するようにしています。

  • seth0128
  • ベストアンサー率0% (0/1)
回答No.2

まず質問を行う前に使用している言語について書いておくと解答者が答えやすいと思います。 また、そのfor文でどういうことをしたいのかも添えてあるとより良いです。 これはBASICのfor文についての質問ですね。 BASICはあまり使ったことがないのですが調べてみたところ stepで増分を決定しているようなのでそのfor文はi=1,5,9のときのみ実行されるようです。 そのfor文中ではi=10のときにfor文の中身(繰り返し部分)を実行するのは無理だと思うので for文の外にi=10のときの動作に相当する文を書くかstep4を使用せず step1としてif文で1,5,9,10のときのみ特定の動作をするように書いてみてはいかがでしょう。

参考URL:
http://fullbasic.web.fc2.com/220_for.html
回答No.1

できません。stepでそんなことができたら訳分からん。 For Each i In Array(1, 5, 9, 10) とか、 For i = 1 to 10 の中でSelect Case分岐 とかでしょう。

関連するQ&A