ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 03:29

全ての表示時間は UTC+09:00 です




返信する
ユーザー名:
件名:
メッセージ本文:
メッセージを入力してください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - 命令語:For ~ Next の不具合
作成者 メッセージ
  記事の件名:  For ~ Next の補足説明  引用付きで返信する
>Iが-1になってからFOR~NEXTを抜け出します。
 そうですね、0(終値)までと勘違いしてました。

>IはLONG型に変数宣言すべきでしょう。
 加算値が負の場合は、「符号付き」で宣言しましょう。
投稿記事 Posted: 2011年6月20日(月) 00:28
  記事の件名:  Re: 命令語:For ~ Next の不具合  引用付きで返信する
>  命令語:For ~ Next で、counter(カウンタ変数)の型をDWordにし、終値(end)を0、加算値(step)を -1 にした場合、止まらない。
> カウンタ変数の型を Long の場合や、終値を0以外の場合は、OKです。

上記からして下記の様なソースコードになります
DIM I AS DWord
FOR I = 100 TO 0 STEP -1

NEXT
MessageBox(NULL,"TEST","TEST",MB_OK)
END

上記の場合Iが-1になってからFOR~NEXTを抜け出します。
ところがDWordは符号なしデータなので-1は-1ではなく2^32-1(4294967295)となるため、FOR~NEXTを抜け出す条件が永遠に成立しないので無限ループになってしまいます。

IはLONG型に変数宣言すべきでしょう。
というか符号付きデータですね。
だから命令語:For ~ Next の不具合でないと思いますが?
投稿記事 Posted: 2011年6月19日(日) 20:36
  記事の件名:  命令語:For ~ Next の不具合  引用付きで返信する
何時も、お世話に成っています。

 命令語:For ~ Next で、counter(カウンタ変数)の型をDWordにし、終値(end)を0、加算値(step)を -1 にした場合、止まらない。
カウンタ変数の型を Long の場合や、終値を0以外の場合は、OKです。

宜しくお願いします。
投稿記事 Posted: 2011年6月19日(日) 18:20

全ての表示時間は UTC+09:00 です


ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean