C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: フラグについて


(過去ログ 37 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■18956 / inTopicNo.1)  フラグについて
  
□投稿者/ 大輔 (1回)-(2008/05/19(Mon) 08:53:06)

分類:[雑談] 

プログラムを組んでいるときに、よくフラグという言葉がでてきますが、
入門書にはでてこない言葉ですよね。
論理演算であることはわかるのですが、具体的にどのような用途で使われるのでしょうか?
日本語の例題でヒントをいただけたらうれしく思います
引用返信 編集キー/
■18962 / inTopicNo.2)  Re[1]: フラグについて
□投稿者/ επιστημη (1023回)-(2008/05/19(Mon) 09:06:11)
επιστημη さんの Web サイト
> 論理演算であることはわかるのですが、具体的にどのような用途で使われるのでしょうか?

演算ではありません。 
YES/NO ある/なし 〜である/〜でない 真/偽 を表す
値や変数を旗(フラグ)と呼んでいます。

コード内では二値を取るので一般に bool が使われます。

// ずっと俺のターン
bool my_turn = true;
while ( my_turn ) {
  card c = deck.draw();
}


引用返信 編集キー/
■18966 / inTopicNo.3)  Re[1]: フラグについて
□投稿者/ 組込系の人 (59回)-(2008/05/19(Mon) 09:15:01)
2008/05/19(Mon) 09:16:33 編集(投稿者)
大体の人は条件として使っていると思います。

例えば、

   フラグ変数 X = たって無い;// グローバルな変数
   A処理();
   if( X == 立ってる) B処理();
   C処理();


みたいな時に、Aの処理の中である条件が整った時だけフラグ変数をセットします。
Bの処理でフラグが立っていれば実行という流れになります。

フラグ変数自体はboolだろうが、intだろうが、自分で定義したenumだろうが何でもOKです。
わかり易い物を使います。
複数条件をフラグにしたい場合は、byteのそれぞれのビットに条件を割り当てて使ったりもします。


ただ上の例だと、わざわざフラグを使わなくても、A処理の戻り値で判断出来そうです。
安易にフラグを乱立させるとスパゲッティーなプログラムに成りがちなので
本当にフラグが必要あるかは、よく考えてから使ってください。

    

引用返信 編集キー/
■19005 / inTopicNo.4)  Re[2]: フラグについて
□投稿者/ 大輔 (2回)-(2008/05/19(Mon) 10:25:51)
No18966 (組込系の人 さん) に返信
> 2008/05/19(Mon) 09:16:33 編集(投稿者)
>
> 大体の人は条件として使っていると思います。
>
> 例えば、
>
> フラグ変数 X = たって無い;// グローバルな変数
> A処理();
> if( X == 立ってる) B処理();
> C処理();
>
>
> みたいな時に、Aの処理の中である条件が整った時だけフラグ変数をセットします。
> Bの処理でフラグが立っていれば実行という流れになります。
>
> フラグ変数自体はboolだろうが、intだろうが、自分で定義したenumだろうが何でもOKです。
> わかり易い物を使います。
> 複数条件をフラグにしたい場合は、byteのそれぞれのビットに条件を割り当てて使ったりもします。
>
>
> ただ上の例だと、わざわざフラグを使わなくても、A処理の戻り値で判断出来そうです。
> 安易にフラグを乱立させるとスパゲッティーなプログラムに成りがちなので
> 本当にフラグが必要あるかは、よく考えてから使ってください。
>
>
大変よくわかりました。ありがとう。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -