いえ、2が表示されるのは正しい挙動です。
説明が足りませんでしたが、このプログラムはBrainFuckと呼ばれる言語のインタプリタを
実装したもので、「+」はデバッグのために表示させていたものです。
(ステップ実行で1文字分実行、ステップアウトで最後まで実行.etc を実装したかった)
もともとの意図としては、「Hello, world!」のようなサンプルを動かしたかったのですが、
単純に文字出力の確認だけでいいのでデバッグのために「2」だけを出力させるようにしていました。
ちなみに、そういう訳なので、システム変数「対象」のあるなしは関係ありません。
恐らく「対象」の代わりに「K」にしても2は出力されます(というかされないと困る・・・)。
ざっと書いたプログラムだったので「対象」を使っていましたが、、、
実際、これが良くない書き方であることは事実ですね。
# せっかくちょうどコーディング規約草案を考えている所なので、
# 「ループ中にシステム変数やカウンタを書き変えない」を加えますf(^^;