トピック

条件を使う命令について

条件を使う命令で何故か1にすると条件が成立してしまうんですがなぜですか?
2そうだね
プレイ済み
返信[1]
親投稿
IF文はその中の計算結果が0かそれ以外かで判断されます。なので0の時は成立しなくて1以上(なので1も)成立します。なので単純に1と書いても成立する事になります。 なので変数を判定するときも0以外で成立して欲しい場合は、 IF A != 0 THEN としなくても IF A THEN でも大丈夫です。この辺は知っておくと便利だと思います。 また比較演算子は結果を0か1で返します。なので例えばAの値が10だとしたら、 PRINT A==10 実行すると、1と返ってきます。実際はIFで使うことが多いですが、その場合も上記の1以上だと実行するという動作と一致することがわかります。
3そうだね
プレイ済み
返信[2]
親投稿
たしかに、結果がTRUE(1)でした。
1そうだね
プレイ済み
返信[3]
親投稿
だにえる haru2016nen
条件式は TRUE(1:成立)もしくは FALSE(0:不成立)を返します。 条件式から返ってきた数値を元に 成立,不成立を決めているので そうなるわけです。
1そうだね
プレイ済み
返信[4]
親投稿
プチコンには真偽型ってないのよね。むしろそれでいい。
0そうだね
プレイ済み
返信[5]
親投稿
SilverBlue Corei72630QM
IF A!=1 のときも !Aでおk ちなみにGOTOする場合はTHENを略せるので、 IF A @A もできる。
0そうだね
プレイ済み
返信[6]
親投稿
そんな感じです! ちなみにそれを利用するとIFを使わずに計算させる手段とかも出来ます。例えばX座標があるとしてボタンで左右に動かしたいときに一般的にはIFを使いますが、それを使わずに、 B=BUTTON() X=X+(B==#RIGHT)-(B==#LEFT) で処理する事が出来るわけです。まああまり多用してもプログラムが見にくくなる可能性があるし素直じゃない感じもあるんですが方法として覚えておくのは便利だとは思います。
1そうだね
プレイ済み
返信[7]
親投稿
IF A!=1 のときも !Aでおk 違うよ! IF A==0 のときも !Aでおk
1そうだね
プレイ済み
返信[8]
親投稿
otta777 otta777a
IF A @Aは流石に略しすぎです^^;;; THENを省略する場合は IF A GOTO @A として下さい。
3そうだね
プレイ済み
返信[9]
親投稿
でんぺんさんのやつみたいに PRINT "正解"*ANSWER_F+"不正解"*!ANSWER_F みたいにすると、 IF ANSWER_F==0THEN PRINT "正解" IF ANSWER_F!=0 THEN PRINT "不正解" を省略できたりします。 結構覚えておくと使い勝手がいいですよ。
1そうだね
プレイ済み
返信[10]
親投稿
!が反転記号だと凄くややこしくなりますが、これは便利ですね。
0そうだね
プレイ済み
返信[11]
親投稿
訂正 IF AN_F==0THEN 正しくすると IF AN_F<=1THEN でした。 あとフラグは0か1にしとかないと駄目でした。 *(AN_F==1)を使うと直ります。
0そうだね
プレイ済み
返信[12]
親投稿
はたまた訂正 IF AN_F!=0ではなく IF AN_F==0でした。 連投すまぬ
0そうだね
プレイ済み
返信[13]
親投稿
SilverBlue Corei72630QM
!A間違えましたwあまさとさんThank。
0そうだね
プレイ済み
返信[14]
親投稿
SilverBlue Corei72630QM
GOTOも間違えていた....
0そうだね
プレイ済み