ab.com コミュニティ
https://www.activebasic.com/forum/

インクリメント時の左辺配列要素の参照回数
https://www.activebasic.com/forum/viewtopic.php?t=928
ページ 11

作成者:  山本 [ 2006年4月06日(木) 21:26 ]
記事の件名:  インクリメント時の左辺配列要素の参照回数

質問版で気づき辛い問題を発見された方がおりましたので、私のほうから詳細をご報告させていただきます。

コード:
Dim i=1 As Byte,k[1] As Byte
k[Command()]++
debug

Function Command() As Byte
Command=i
If i>0 Then i=0
End Function
このようなコードを実行すると、Command関数が2回呼び出されてしまう問題について、修正を行います。

n++

通常は上記のようなコードは、

n=n+1

と同等の意味を持ちますが、今回の問題に関しては、

k[Command()]++

k[Command()]=k[Command()]+1

は等しいとはいえません。プログラムの表記通り、配列要素の参照が一度しか記述されておりませんので、呼び出し回数も一度で済むように改良を行おうと思います。

作成者:  Kobu [ 2006年4月12日(水) 20:36 ]
記事の件名:  インクリメントについて

自分が発見したインクリメントによるバグ(?)が修正されたのは、ありがとうございます。

ただ、修正後のABにおいて文字列インクリメント
コード:
Dim S As String
S+="a"
を記述すると、内部エラーと表示されます。

報告ということで・・後はお任せします。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/