flagの判断の違いについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
宗一郎

flagの判断の違いについて

#1

投稿記事 by 宗一郎 » 15年前

お世話になっておりますm(_ _)m
龍神録プログラミングの館で勉強させていただいているのですが、
flagがたっているかの判断の場合に毎度判断の条件が違いますが何か理由があるのでしょうか?

例えば、
13.敵にショットを撃たせてみよう
http://dixq.net/rp/13.html

弾丸の描画部分での
if(shot.flag>0){//弾幕データがオンなら
if(shot.bullet[j].flag!=0){//弾データがオンなら


などです。
flagの判断はだいたいは1かどうか判断しているのですよね?
もし、1かどうか判断しているのならどれか1つに統一できるのではないかと思いまして。

ほとんどこのサイトで勉強しただけなので、初心者な質問かもしれませんが、
よろしくお願いしますm(_ _)m

dic

Re:flagの判断の違いについて

#2

投稿記事 by dic » 15年前

int i; としたとき
i = 1; // オンにする
if( i > 0 )
で通りますが

i = -1; のとき
if( i != 0 )
の時もオンとみなしますね

宗一郎

Re:flagの判断の違いについて

#3

投稿記事 by 宗一郎 » 15年前

回答ありがとうございます^^

ですが、ちょっと意味合いが違うように伝わってしまったようです。
わかりずらい説明をしてすみませんm(_ _)m

私が言いたかったことは、帰ってくる数値が1か0しかないのに
条件が違う場合のことを言いたかったのです。

ookami

Re:flagの判断の違いについて

#4

投稿記事 by ookami » 15年前

私は、同じ書き方で統一したほうがベターだと思います。
仕様変更などのとき混乱のモトになる気がいたします。

# まぁ、「flag」という名前の変数を、「0か1をとる」以外の用途に仕様変更するってことは
# なかなかない気がするので、問題になるケースは少ないかもですが^^;

宗一郎

Re:flagの判断の違いについて

#5

投稿記事 by 宗一郎 » 15年前

やっぱり同じような処理(判断など)をする場合は、統一したほうがいいんですね。

dicさん、ookamiさん
初心者な質問に回答していただきありがとうございました^^

Poco

Re:flagの判断の違いについて

#6

投稿記事 by Poco » 15年前

> # まぁ、「flag」という名前の変数を、「0か1をとる」以外の用途に仕様変更するってことは
> # なかなかない気がするので、問題になるケースは少ないかもですが^^;

龍神録は仕様変更するケースに該当するんですよね。
これがまた。

Dixq (管理人)

Re:flagの判断の違いについて

#7

投稿記事 by Dixq (管理人) » 15年前

flagはC++であれば本来boolで宣言すべきですよね。
intで宣言したとしても0か1以外入れるべきではないです。入れるのであれば0以外は全て同じ条件を示すべきでしょう。
しかし龍神録では確か敵が倒れてまだ弾幕が生存していると敵のフラグが2になる瞬間があったように思います。
なるべく変数をあれこれ宣言したくなかったからこのような事をしたのですが、フラグの意味からするとおかしいですね。
(変数名をstatusとかにすればよい話かもしれませんが)

条件判定については、「偽は0」「真は0以外」ですので、
「==0」か「!=0」で統一すればよいかと思います。

宗一郎

Re:flagの判断の違いについて

#8

投稿記事 by 宗一郎 » 15年前

管理人様、ぽこさん
回答ありがとうございます^^

>龍神録では確か敵が倒れてまだ弾幕が生存していると敵のフラグが2になる瞬間があったように思います。

このところがあったので、判断がどうなっているのかなと思っていました。

これでそこのところの疑問も解消されました。

ありがとうございましたm(_ _)m

閉鎖

“C言語何でも質問掲示板” へ戻る