[過去ログ] 【初心者歓迎】C/C++室 Ver.103【環境依存OK】 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
797(5): 2018/11/12(月)14:29 ID:AHq3PbYw(1/2) AAS
初心者です。
bool変数hogeの真偽で反対の代入をする場合につきまして、
int a, b;
if (hoge) { a=1; b=2; } else { a=2; a=1; }
と
int a=1, b=2;
if (! hoge) { a=2; a=1; }
省2
799(1): 2018/11/12(月)15:37 ID:D6ILV7Jx(1/2) AAS
>>797
偽(false)の時だけならif(!hoge){...}の方。
806: 2018/11/13(火)18:30 ID:90McxFB4(2/2) AAS
>>797
int a, b = 2 - !!hoge, 1 + !!hoge;
809: 2018/11/13(火)22:19 ID:kE0CzrCg(1) AAS
>>797
多人数で開発する場合は、前者のほうが好まれると思います。
可読性が高いのでコードレビューしやすいですし、改修もしやすいです。
後者は、1行目と2行目の間で、aかbの値を変更する改修が入ってしまうと
2行目のif文に入らない場合に、望む結果が得られません。
プログラマになりたいとかでなければどっちでもいいと思いますが
難しい書き方をすると、時間経って読み返したときに、
省1
810: ◆QZaw55cn4c 2018/11/13(火)23:35 ID:q+gBL2L3(1) AAS
>>797
else を使わなくて済むのなら、そうしたほうがいい、とはよくききます
812: はちみつ餃子 ◆8X2XSCHEME 2018/11/14(水)02:13 ID:I7yQY6ax(1) AAS
>>797
状況によっても違ってくると思う。 一般的には前者だろうけど、
{ a=2; a=1; } が例外的な場合として特別扱いしてるってことを強調したい理由があるなら後者で書くこともあるかもしれん。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s