見出し画像

[基礎][LotusScript]Forステートメントの[最終値]について知ろう。

For文における最終値の性質

繰り返しの処理を行う命令に、Forステートメント[For文]があります。次の構文です。

For countVar = first To last
[ statements ]
Next [ countVar ]

仮にfirstが1で、lastが10であるとすれば、For~Nextで挟まれた[ statements ]ブロックにある命令は、10回繰り返されます[※デフォルト設定の場合]。lastのことを「最終値」と呼びます。

ここで問題です。次のFor文を実行したとき、Print文で表示される値は次のうちどちらでしょう。

選択肢1. 「20」

選択肢2. 「10」

Sub Click(Source As Button)
	Dim iCount As Integer
	Dim iLast As Integer
	iLast = 10
	
	For iCount = 1 To iLast
		Print iCount
		If 2 = iCount Then
			iLast = 20 ' ここでiLastを10から20に増やす。
		End If
	Next
End Sub

前提としてPrint文は、ループで使うとスロットマシンのようにカシャカシャと表示が変化していくものの、最終的な停止状態では、最後に表示される値のみ表示されます。

ちょっと考えてみます。

Printで表示されるiCountには、1からiLastまでの値が次々と入っていくようになっている。そしてPrintで最後に表示されるのは、iCountの最後の値だ。それはつまりiLastの値だ。iLastには最初に「10」が代入されている。

・・・Printで表示されるのは、「10」かな?

あっ でも[statements]ブロックには、次の一文がある。

iLast = 20 ' ここでiLastを10から20に増やす。

ここでiLastが「20」に修正されている。よってPrintで表示されるのは「20」、なのかな?

実際にやってみると、こうなります。

ここから先は

152字 / 1画像

¥ 110

サポートいただければ、記事をもっと充実することができます