HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0426
ひじき条件式の&を|で複数使いたい3解決


ひじき

リンク

2010/4/26(Mon) 23:36:47|NO.32276

初めてここで質問させて頂きます。
repeat
redraw 0 color 255,255,255:boxf:color stick a,15 if a & 1 | a & 4 { b = 1 } else { b = 0 } pos 0,0 mes a mes b await 10 redraw 1 loop
このようにして、左もしくは右のどちらかが押されていれば1を返したいのですが、
なぜか a & 4 のほうしか機能しておりません。
何が原因なのか、またどう解決すればいいのか
ご教授頂ければ幸いです。
宜しくお願いします。



この記事に返信する


あり

リンク

2010/4/26(Mon) 23:48:08|NO.32277

形式として覚えてしまっているので上手く説明は出来ないのですが(汗)
最初の比較以外は括弧で囲わないと正しく処理できないので
if (a & 1) | (a & 4)

if a & 1 | (a & 4)
にすれば正しく動くはずです。



GENKI

リンク

2010/4/27(Tue) 00:18:47|NO.32280

> 形式として覚えてしまっているので上手く説明は出来ないのですが(汗)

ということなので補足。

スクリプトエディタのメニューから「ヘルプ」→「HSPマニュアル目次」を開く。
「プログラミングマニュアル・基本仕様ガイド(hspprog.htm)」の「3.6 式」を参照ください。
また「3.12 条件判断」も参照ください。

つまり、ありさんは「演算子の優先順位が重要だ」と言いたかったようです。


あ、プログラミングマニュアルを読んでもわからなかったらまたご質問ください。



ひじき

リンク

2010/4/27(Tue) 00:40:04|NO.32283

お返事ありがとうございます。
おかげさまで正しく動作しました。
マニュアルをあまり熟読せずに他人のコードを見たりして覚えたので
条件式を()で囲ったりするのを面倒がってやっていませんでした。
今後はなるべく見やすいソースと正しい動作のために
なるべくきっちり囲うようにします。
ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.