結論から言うとvb.netではインクリメントとデクリメントはありません。
インクリメントとは1足すやつです。
++i,i++とかですね。
1足せばいいので
i = i + 1
です。
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim i As Integer = 0
i = i + 1
MsgBox(i)
End Sub
End Class
デクリメントは1引きます。
1引けせばいいので
i = i – 1
です。
サンプルソース
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim i As Integer = 0
i = i – 1
MsgBox(i)
End Sub
End Class
++とはインクリメント演算子です。
そもそもインクリメント演算子++はvbではありません。
インクリメント演算子とかはC言語とかです。
インクリメントは前置と後置があります。
前置
++i
後置
i++
そもそもインクリメントを使ったほうがいいのは早いからです。
ウイキから
インクリメント
インクリメント (increment) は、一般には増加という意味だが、コンピュータ用語としては、変数の値を1増やす演算のことである。逆に、1減らす演算はデクリメント (decrement) である。
プロセッサでの扱い[編集]
ループや逐次アドレッシングで使用頻度が極めて高いため、プロセッサレベルで専用のインクリメント命令が用意されていることが多い。
通常、レジスタに数値を加算するには、1ワードで加算命令とレジスタを表し、もう1ワードで加算する数値を表すので、計2ワードが必要だが、インクリメント命令を使えば1ワードで済む。ただし、プロセッサによっては、インクリメント命令は加算命令よりもオペランドの種類が限られる(たとえばアキュムレータのみに可能など)。
アセンブラの中には、1を加算する加算命令をインクリメント命令に最適化するものもある。
vbではダサいですが
i = i + 1
です。
ちなみに似たやつで+=ありますがぜんぜん意味違いますからね。
+=は代入演算子です。
Public Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim i As Integer = 1
i += i
MsgBox(i)
End Sub
End Class
実行結果
2
iが1だから2になります。
iが2なら4になります。
Public Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim i As Integer = 2
i += i
MsgBox(i)
End Sub
End Class
iが文字列なら同じ値が連結されます。
Public Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim i As String = 2
i += i
MsgBox(i)
End Sub
End Class