過去の桐井戸端BBS (桐ver.9) |
23303 | コマンド「if」の条件の書き方がよくわからない | ステラ | 2003/11/12-15:17 |
お久しぶりです。 if... else if...else endを使って、数値型[コード]から種類ごとに分類し、 それぞれに処理をしたいのですが、ifの条件の書き方がおかしいのかうまくいきません。 ============= イベントメインで行っている変数宣言は省略してあります。 &確認----文字列 if (1100000<[コード]<1110000) &確認="分類1" else if (1110000<[コード]<1120000) &確認="分類2" else if (2100000<[コード]<2200000) &確認="分類3" else &確認="その他" end ============== 動作確認のために変数を作り動かしてみましたが、&確認はすべて分類1になって返ってきます。 項目名[コード]をそのまま使ったのがいけないのかと思い、 数値,&CD を宣言し、ソース値取得で[コード]の値を&CDにとりだし、ifの条件のなかの[コード]を&CDに置き換えてやってみましたが 結果は同じでした。 途中のelse if(分類2、3の分)をなしにして、elseのみで動かしても、 最初の条件に当てはまらなくてもすべて分類1で返ってきます。 この時、&CDは確かにelseに分類される数値になっています。 どなたか、間違いを教えてください。 | |||
23305 | Re:コマンド if の条件の書き方 | うにん | 2003/11/12-15:33 |
記事番号23303へのコメント > if (1100000<[コード]<1110000) こういう書き方は「比較式」でしかできません。 ifの中は「条件式」なので 1100000<[コード] .and [コード]<1110000 になります。 >どなたか、間違いを教えてください。 1100000<[コード]<1110000 だと左から順に計算されて 1100000<[コード] が必ず1か0になるので (1か0)<1110000 は常に真になってしまいます。 | |||
23306 | Re:納得しました。 | ステラ | 2003/11/12-15:51 |
記事番号23305へのコメント うにんさん、いつもありがとうございます。 >1100000<[コード]<1110000 >だと左から順に計算されて >1100000<[コード] >が必ず1か0になるので >(1か0)<1110000 >は常に真になってしまいます。 とっても納得しました。ありがとうございます。 |