- ベストアンサー
jsフラグは2つが限界? フラグの立て方と制限について
- JavaScriptにおいて、フラグを立てることができるのは2つまでです。フラグの立て方を紹介したサイトでは、trueまたはfalseの場合分けしかなく、3つ目のフラグを立てる方法は存在しません。
- 例えば、1から100までの数の中から3の倍数をtrueとして返すプログラムを作成することは可能です。しかし、それ以降の条件、例えばfalseの中から5の倍数にtrueを返すプログラムを作成することはできません。
- JavaScriptでは、フラグを制御するために変数を使用します。フラグを立てるかどうかの条件は、if文や論理演算子を組み合わせて記述します。しかし、フラグは2つまでしか立てることができないため、3つ以上の条件に対応するプログラムを作成することはできません。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
基本を学ばずにググって済まそうとすると、いろいろわからないことが出てくるのでしょうね。 「フラグ」と呼ぶ変数は普通は真と偽だけですが、別に、普通の変数なので値はいろいろ代入できるので、0,1,2,3,4 でもいいし、"A", "B", "C" でもいいし、どんな値でも代入できます。 var fooFlag = "A"; var gooFlag = 99; 真偽値しか入れないフラグの場合は、if文では if(xxxFlag) などと変数をそのまま書けますが、真偽値以外の値が入るフラグの場合は if(fooFlag=="A")のように値と比較する必要があります。
その他の回答 (6)
- Ultra-Hetare
- ベストアンサー率38% (204/526)
「or」です。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
あ、ごめん^^別の値を返したかったのね^^ なら、3の倍数なら「3」を返して、 5の倍数なら「5」を返して、 どちらでもないなら、「0」を返すってことなら、 ありかも・・・ フラグって言葉を使うから、0/1(二値)って誤解が生まれるだけかも! 返り値は、Bool 以外に Int でもいいんですから(数値って事ね) そんだけで、全部解決する気がしてきた・・・
- t_ohta
- ベストアンサー率38% (5238/13705)
質問者さんが書かれているのは、3の倍数もしくは5の倍数なら TRUE で、それ以外が FALSE という事ですから、フラグは2値で済みますよね。 フラグというの基本的に旗が立っているか寝ているかの2値でしかありません。 複数の状態を表したい場合はステータスと言う場合があります。 ステータスが1なら3の倍数、2なら5の倍数、0ならそれ以外と言った具合ですね。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
この場合フラグもう関係ないのでは? if ((n%3)==0) return(true); if ((n%5)==0) return(true); return(false); 3で割り切れる=元々が3の倍数だったらtrue 5で割り切れる=元々が5の倍数だったらtrue どちらでもないなら、false を返してます。 特に、フラグはいりません。 思うにフラグへのこだわりを一度捨ててみると 道が開ける気がします。 上のを1行で書くなら return ( (n%3)==0? true:(n%5)==0? true:false ); return直後の"("は省略できます。
- agehage
- ベストアンサー率22% (2753/12076)
Switch文ではダメ?
- wormhole
- ベストアンサー率28% (1626/5665)
プログラミングで「フラグ」といった場合は、on/off, true/false といった2つの値のどちらかだけが入る変数や状態の事をいいます。 javascriptの限界というわけではなく「フラグ」が元々そういうものなんです。
お礼
詳しいご説明ありがとうございます。