§2 トレース(1)2 | プログラミング実習 |
【3】 VB独自の方法
VBの開発環境には、プログラムのトレースを支援する機能が用意されている。メニューバーの[デバッグ(D)]から利用できる機能について学習する。
○ ブレークポイントの設定/解除
ブレークポイントとは、プログラムの実行を一時的に停止(終了ではない)する場所のことである。一時停止したい行にカーソルを移動して、メニューバーから次のように選択するとブレークポイントの設定と解除が交互に行える。([F9]キーを押してもよい)
[デバッグ(D)] → [ブレークポイントの設定/解除(G) F9] |
○ ステップイン
ステップインとは、プログラムを1命令ずつ実行する機能である。
メニューバーから次のように選択する。([F8]キーを押してもよい)
[デバッグ(D)] → [ステップイン(I) F8] |
これらの機能を使ってトレースする。プログラムは「実習2トレース(1から5までの和を計算する)」を使う。
操作 6 デバッグ用の命令を削除する。
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
Dim n As Integer, goukei As Integer
'#0
For n = 1 To 5
'#1
goukei = goukei + n
'#2
Debug.Print("n=" & n & " goukei=" & goukei) '←削除
Next
'#3
label1.text = "結果は、" & goukei
& " です。" '#4
End Sub
操作 7 ブレークポイントを設定する。
@ コードウィンドウを開いて、カーソルを合計計算の行(#2)に移動する。
A [F9]キーを押す。 行が暗い赤色に変わる。
操作 8 プログラムを実行して、[Button1]ボタンをクリックする。
VBの開発環境がアクティブになり、コードウィンドウが開く。ブレークポイントを設定した行が黄色になり停止する。この行を実行する前で停止している。
操作 9 マウスを変数nまたは変数goukeiの上に移動し、現在の値を確認する。
変数の値が表示される。図は変数nの場合である。
変数nの値=( 1 )、変数goukeiの値=( 0 )
操作 10 実行を再開(続行)するため、[F5]キーを押す。
ブレークポイントで停止する。
変数nの値=( 2 )、変数goukeiの値=( 1 )
操作 11 命令を1つだけ実行するため、[F8]キーを押す。
Nextの行(#3)が黄色になる。この行を実行する前で停止している。
変数nの値=( 2 )、変数goukeiの値=( 3 )
操作 12 プログラムを最後まで実行するため、ブレークポイントを解除する。
@ カーソルを合計計算の行(#2)に移動する。
A [F9]キーを押す。 結果→ 色が元に戻る。
B [F5]キーで実行を再開する。
Label1に「結果は、15 です。」と表示される。
○ ステップオーバー
ステップオーバーとは、メソッドの呼び出しに対してメソッドに移動しないで、プログラムを1命令ずつ実行する機能である。(メソッドの作成については次回に説明する)
メニューバーから次のように選択する。(Shift+[F8]キーを押してもよい)
[デバッグ(D)] → [ステップオーバー(O) Shift+F8] |
この機能を使ってトレースする。プログラムは「実習2トレース(1から5までの和を計算する)」を変更して使う。
操作 13 下線部の命令を追加する。
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
Dim n As Integer, goukei As Integer
For n = 1 To 5
goukei = goukei + n
Next
hyouji(goukei) 'メソッド呼び出し
Label1.Text = "結果は、" & atai & " です。" '←削除
End Sub
Private Sub hyouji(ByVal atai As Integer)
Label1.Text = "結果は、" & atai & " です。"
End Sub
操作 14 ブレークポイントをメソッド呼び出しの行に設定する。
操作 15 プログラムを実行して、ボタン(Button1)をクリックする。
VBがアクティブになり、コードウィンドウが開く。ブレークポイントを設定した行が黄色になり停止する。この行を実行する前で停止している。
操作 16 [F8]キーを押して命令を1つずつ実行し、最後まで実行する。
4 hyouji(goukei)
'メソッド呼び出し
5 End Sub
1 Private Sub hyouji(ByVal atai As Integer)
2 Label1.Text = "結果は、" & atai
& " です。"
3 End Sub
操作 17 最後まで実行してウィンドウが表示されたら、プログラムを終了する。
操作 18 もう一度、プログラムを実行して、ボタン(Button1)をクリックする。
VBの開発環境がアクティブになり、コードウィンドウが開く。
操作 19 今度は、Shift+[F8]キーを押して命令を1つずつ実行し、最後まで実行する。
hyouji(goukei) 'メソッド呼び出し
1 End Sub
Private Sub hyouji(ByVal atai As Integer)
Label1.Text = "結果は、" &
atai & " です。"
End Sub
メソッドに移動しない。これがステップオーバーである。
操作 20 最後まで実行してウィンドウが表示されたら、プログラムを終了する。
§2 トレース(1)2 | Copyright©2008 Hiroshi Masuda |