トピック
あきと(www) A28K28H28T

IF THENの条件判断の質問

画像みたいに、 [B==#A]と[B AND #A]って どんな違いがありますか?
2そうだね
プレイ済み
返信[1]
親投稿
STiNGER STiNGER8901
B==#A 他のボタンが同時に押されていると非成立。 B AND #A 他のボタンが同時に押されていてもOK。
5そうだね
プレイ済み
返信[2]
親投稿
あきと(www) A28K28H28T
ありがとうございます! 参考にさせていただきます!
0そうだね
プレイ済み
返信[3]
親投稿
みなつ tksm372
BUTTON()の戻り値を二進数で表示してみると、同時押ししたときにどんな値を返してくるのか、わかりやすいかも(≧∇≦)b WHILE 1 CLS LOCATE 0,0 B=BUTTON() ?FORMAT$("%016B",B) IF B AND #A THEN ?"AND #A",(B AND #A) IF B == #A THEN ?"==#A",(B==#A) VSYNC WEND
4そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
「B==#A」と「B AND #A」の違いという場合に見た目の違いで「『==』と『AND』の違い」と考えてしまうと理解できないかもしれません。 しかし、実は、IF B AND #A THEN ~ は IF (B AND #A)==#A THEN ~ と同じことなのですが、これを元に考えると IF B==#A THEN ~ と IF B AND #A THEN ~ の違いは「B」と「B AND #A」となります。 ANDはビット演算を行う演算子であり2進数の理解が必要不可欠なのですが、ボタン判定に用いる場合は2進数で考えることなくB AND #Aで「Bの値から#Aの値を取り出せる」くらいの認識で問題ありません。
1そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
右ボタン、Aボタン、Bボタンを同時に押している場合にはBの値は#RIGHT+#A+#Bになるのですが、B AND #Aはその中から#Aのみを取り出せるわけです。(Aボタンを押している場合はB AND #Aの値は#Aになる) 右ボタン、Bボタンを同時に押している場合(Aボタンを押していない場合)にはBの値は#RIGHT+#Bになるのですが、B AND #Aはその中から#Aのみを取り出せるけど#Aが無いため0となります。 こんな感じでB AND #Aで他のボタンを押していても関係なくAボタンを押しているかどうかが分かるわけです。
1そうだね
プレイ済み
返信[6]
親投稿
あきと(www) A28K28H28T
ありがとうございます! 参考にさせていただきます。 トピ閉じます
0そうだね
プレイ済み