- ベストアンサー
BOOL値を逆にしたい
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
flg = !flg; 否定した値(つまり、反対の値)を取ればよい。
その他の回答 (1)
- LongSecret
- ベストアンサー率68% (22/32)
BOOLはWinDef.hでintのtypedefとして 定義されていますが falseがFALSE(0)固定で trueがTRUE(1)固定にするなら flg^=1; //flg^=TRUE; で大丈夫です。 0以外の何かが入っているけど1とは限らない状態がtrueで、そこから 逆のFALSEかTRUEにするなら flg=!flg; でいいと思います。
お礼
早速のご回答ありがとうございます! ご丁寧に色々記載いただき、感謝感謝ですm(__)m
関連するQ&A
- BOOLの初期値は?
<プログラム環境> Windows XP VC++6.0 MFC AppWizard(exe) ダイアログベース <質問> BOOL bl; と宣言した後、必ず bl = FALSE; と初期値を入れているのですが、元々FALSEかTRUEのどちらか、 決まった初期値が入っているのでしょうか?
- ベストアンサー
- C・C++・C#
- 条件判断の記述方法
いつも下記のような記述でまよってしまいます。 どちらがスマートな書き方なのでしょうか。 もしくはそもそもの書き方がおかしいでしょうか。 [記述方法1] foreach( string s in k.keys ) { if( s == "ok" ) goto OK; } //NGな処理 return false; //OKな処理 OK: return true; [記述方法2] bool ok_flg = false; foreach( string s in k.keys ) { if( s == "ok" ) { ok_flg = true; break; } } if( ok_flg ) { //OKな処理 }else{ //NGな処理 } return ok_flg;
- 締切済み
- C・C++・C#
- コード(Python)の解説をして頂きたいです
このコードはスペースが2つ以上ある場合スペースを一つだけにする、そして文の最初と最後にスペースがあった場合そのスペースを消すというコードだということは理解出来たのですが、flgはなんの略なのかということと、ans = ans[1:] if ans[0] == ' ' else ans ans = ans[:-1] if ans[-1] == ' ' else ans このコードのelse ansはどのような働きをしているのか分かりません。 もし宜しければ解説をして頂きたいです。 def removeExtraSpaces(theString): ans = '' flg = True for s in theString: if s == ' ': if flg: ans += s flg = False continue flg = True ans += s ans = ans[1:] if ans[0] == ' ' else ans ans = ans[:-1] if ans[-1] == ' ' else ans return ans
- 締切済み
- Python
- Pythonのコードの解説をお願いします
このコードはスペースが2つ以上ある場合スペースを一つだけにする、そして文の最初と最後にスペースがあった場合そのスペースを消すというものだとういうことは理解出来たのですが、なんでこういうコードを書いたぬぬかついんのか、 def removeExtraSpaces(theString): ans = '' flg = True for s in theString: if s == ' ': if flg: ans += s flg = False continue flg = True ans += s ans = ans[1:] if ans[0] == ' ' else ans ans = ans[:-1] if ans[-1] == ' ' else ans return ans これを解説して
- 締切済み
- Python
- rubyの構文(&&を用いた条件分岐について)
ruby初心者です。 最近、ruby on railsで書かれたソースを引き継ぎ解析を行っています。 その中で、以下のような構文が出てきました。 ========================================= num = 0 bool = false vals = '' puts 'start' num == 0 && bool && if vals puts 'true' else puts 'false' end puts 'end' ========================================= 上記プログラムを実行すると、if ~ end までが実行されませんでした。 そこで、変数boolをtrueに変更して再実行したところ、if文が実行されました。 そこで私は、上記プログラムは以下と同値であると解釈しました。 ====================================== (省略) if num == 0 && bool if vals puts 'true' else puts 'false' end end ======================================= 以上を踏まえて・・・ 1.私の解釈は正しいでしょうか? 2.間違っている場合、正しい処理の解釈を教えていただけますでしょうか?または参考URLを教えていただけますと助かります。 文の最後に"&&"がついている文を見たことがなく、ネットで調べても 正解らしいものが掲載されていなかったので質問させていただきました。 拙い説明で申し訳ありませんが、よろしくお願いいたします。
- ベストアンサー
- Ruby
- javaのプログラムについての質問です。
javaのプログラムについての質問です。 javaについて、あまり詳しくないので質問させていただきます。 ボタンを押して円などの色を変えるプログラムで、2色を変える(黄→赤)if文は public void actionPerformed(ActionEvent e) { if (bool) { setBackground(Color.yellow); this.bool = false; } else { setBackground(Color.red); this.bool = true; の様にfalseとtrueを使えばできるのですが、もし3、4色の場合はif文の中をどうしたら良いですか? できれば、ボタンを押すたびに黄→赤→黒→黄…など3~4色のループするようにしたいです。 いろいろ考えたのですが、うまくいきません。どなたか教えて下さい。
- ベストアンサー
- Java
- bool
素数を求めるプログラムを作りました。 素数か、そうでないかを1か0で区別していたのですが、 よりメモリを効率よく使いたいため、booleanを使ったらどうだという案をいただきやってみたのですが、エラーが出てしまいました。 このプログラムの何がいけないのですか? #include<stdio.h> #include<stdbool.h> #define n 250000 main(){ int i,p,k,w,np,s; bool pn[n]; np=0; for(i=0;i<n;i++){ pn[i]=false; } for(i=0;i<=n;i++){ if(pn[i]==false){ p=3*i+5-(i%2); w=2*p; for(k=i+w;k<=n;k+=w){ pn[k]=true; } s=5*i+7-2*(i%2); for(k=s;k<n;k+=w){ pn[k]=true; } np++; } } printf("%10d",np+2); }
- ベストアンサー
- C・C++・C#
- Boolean型変数の値を反転する方法
ご存知の方教えて頂けますか? Boolean型変数の値が True なら False,False なら True に変換したいのですが、現在次のようにcodeを書き、希望した値になります。 Dim bool As Boolean 中略 bool = bool - True このcodeは正しいのでしょうか? 他に ”正しい方法”があるのでしょうか? スミマセン!よろしくお願いします。
- ベストアンサー
- Visual Basic
お礼
早速のご回答ありがとうございます!