ab.com コミュニティ https://www.activebasic.com/forum/ |
|
命令語:For ~ Next の不具合 https://www.activebasic.com/forum/viewtopic.php?t=2680 |
ページ 1 / 1 |
作成者: | ベーやん [ 2011年6月19日(日) 18:20 ] |
記事の件名: | 命令語:For ~ Next の不具合 |
何時も、お世話に成っています。 命令語:For ~ Next で、counter(カウンタ変数)の型をDWordにし、終値(end)を0、加算値(step)を -1 にした場合、止まらない。 カウンタ変数の型を Long の場合や、終値を0以外の場合は、OKです。 宜しくお願いします。 |
作成者: | たかせ [ 2011年6月19日(日) 20:36 ] |
記事の件名: | 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 の不具合でないと思いますが? |
作成者: | ベーやん [ 2011年6月20日(月) 00:28 ] |
記事の件名: | For ~ Next の補足説明 |
>Iが-1になってからFOR~NEXTを抜け出します。 そうですね、0(終値)までと勘違いしてました。 >IはLONG型に変数宣言すべきでしょう。 加算値が負の場合は、「符号付き」で宣言しましょう。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |