タグ付けされた質問 「conditions」

19
関数から早く戻るか、ifステートメントを使用する必要がありますか?[閉まっている]
私はよくこの種の関数を両方の形式で記述しましたが、ある形式が別の形式よりも好まれるのか、そしてその理由は疑問でした。 public void SomeFunction(bool someCondition) { if (someCondition) { // Do Something } } または public void SomeFunction(bool someCondition) { if (!someCondition) return; // Do Something } それはコーディング中の私の脳の働きであるため、私は通常最初のものでコーディングしますが、エラー処理をすぐに処理し、読みやすいので2番目のものを好むと思います

15
開発者は、ステートメントに否定条件を含めるべきではなく、常にelseブロックを用意する必要がある場合、
私には知り合いがいて、私よりもベテランの開発者です。私たちはプログラミングの実践について話していましたが、「if」ステートメントに関する彼のアプローチには驚かされました。彼は、私がかなり奇妙だと思うifステートメントに関するいくつかの慣行を主張しています。 まず、ifステートメントの後にelseステートメントを続ける必要があります。挿入するものがあるかどうかは関係ありません。次のようなコードになります。 if(condition) { doStuff(); return whatever; } else { } 第二に、偽よりも真の値をテストする方が良いです。つまり、「!doorOpened」変数の代わりに「doorClosed」変数をテストする方がよいということです。 彼の議論は、コードが何をしているのかを明確にするということです。 これら2つのルールを組み合わせることで、条件が満たされていないときに何かを実行したい場合、この種のコードを書くようになる可能性があるため、かなり混乱しています。 if(condition) { } else { doStuff(); return whatever; } これについての私の考えは、それは実際には非常にいことである、および/または品質改善があったとしてもごくわずかであるということです。しかし、私は後輩として、本能を疑う傾向があります。 だから私の質問は次のとおりです。それは良い/悪い/「問題ではない」プラクティスですか?それは一般的な習慣ですか?

24
if(if else)elseを処理するエレガントな方法
これはささいなことではありませんが、このようなコードをコーディングする必要があるたびに、繰り返しが気になりますが、どのソリューションも悪くないかどうかはわかりません。 if(FileExists(file)) { contents = OpenFile(file); // <-- prevents inclusion in if if(SomeTest(contents)) { DoSomething(contents); } else { DefaultAction(); } } else { DefaultAction(); } この種のロジックには名前がありますか? 私も少しOCDですか? 好奇心のためだけに、私は邪悪なコードの提案を受け入れています...

25
三項演算子は有害と考えられますか?[閉まっている]
たとえば、このワンライナーを好むだろうか int median(int a, int b, int c) { return (a<b) ? (b<c) ? b : (a<c) ? c : a : (a<c) ? a : (b<c) ? c : b; } または複数のreturnステートメントを含むif / elseソリューションですか? ?:適切な場合と適切でない場合 初心者に教えたり隠したりするべきですか?

11
スイッチでブレークを使用する必要があるのはなぜですか?
各ステートメントでswitch(多くの言語の)構造を使用する必要breakがあると誰が決定しましたか(また、どの概念に基づいていましたか)? なぜ次のように書かなければならないのですか: switch(a) { case 1: result = 'one'; break; case 2: result = 'two'; break; default: result = 'not determined'; break; } (PHPとJSでこれに気づいた;これを使用する他の多くの言語がおそらくあります) switchがの代替である場合if、なぜと同じ構成を使用できないのifですか?すなわち: switch(a) { case 1: { result = 'one'; } case 2: { result = 'two'; } default: { result = 'not determined'; } } 現在breakのブロックに続くブロックの実行を妨げると言われています。しかし、誰かが本当に現在のブロックと後続のブロックを実行する必要がある状況に遭遇しますか?しなかった。私にとっては、break常にそこにいます。すべてのブロックで。すべてのコードで。
74 conditions 

4
if( 'constant' == $ variable)vs. if($ variable == 'constant')
最近、私はPHPで、特にWordPressフレームワーク内で多くのことをしています。私は次の形式の多くのコードに気付いています: if ( 1 == $options['postlink'] ) 期待していた場所: if ( $options['postlink'] == 1 ) これは特定の言語/フレームワークで見られる慣習ですか?前者のアプローチが後者よりも好ましい理由はありますか(処理の観点、または構文解析の観点、あるいは人間の観点からも) それとも単に好みの問題ですか?ある定数に対してテストされる変数項目は左側にあると、テストを実行するときは常に良いと思っていました。「チョコレートがケーキの場合」よりも、「ケーキがチョコレートの場合」という自然言語での質問の方がよく似ているようです。

13
Uncle BobのClean Code原則に準拠するためにif-else ifステートメントのチェーンを編集するにはどうすればよいですか?
ボブおじさんのきれいなコードの提案に従い、特にメソッドを短くするようにしています。 ただし、このロジックを短縮することはできません。 if (checkCondition()) {addAlert(1);} else if (checkCondition2()) {addAlert(2);} else if (checkCondition3()) {addAlert(3);} else if (checkCondition4()) {addAlert(4);} 私はelseを削除することができないため、全体を小さなビットに分割し、「else if」の「else」を使用するとパフォーマンスが向上します本当です、私はそれらを避けたいです。 意味的に言えば、前の条件が満たされた場合に次の条件を評価することは、ビジネスの観点からは意味がありません。 編集:この質問は、if(if else)elseを処理するエレガントな方法の可能な重複として識別されました。 これは別の質問だと思います(これらの質問の回答を比較することでも確認できます)。 私の質問は、すぐに終わる最初の受け入れ条件をチェックしています。 リンクされた質問は、何かをするためにすべての条件を受け入れようとしている。(この質問に対するこの回答でよく見られます:https : //softwareengineering.stackexchange.com/a/122625/96955)

6
long if条件をフォーマットする最も読みやすい方法は?[閉まっている]
if可能な場合は、長い巻き取り条件を避ける必要がありますが、ときどき私たち全員がそれらを書くことになります。たとえそれが非常に単純な条件であっても、関係するステートメントは時々非常に冗長であるため、条件全体が非常に長くなります。それらをフォーマットする最も読みやすい方法は何ですか? if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) { thud(); } または if ( FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy ) { thud(); } または if (FoobarBaz::quxQuux(corge, grault) || !garply(waldo) || fred(plugh) !== xyzzy) { thud(); } または thudable = FoobarBaz::quxQuux(corge, grault); thudable ||= !garply(waldo); thudable …


7
制御フローによって冗長になる状況では、「else」を使用する必要がありますか?
次の例のようなコードに出くわすことがあります(この関数の機能はこの質問の範囲外です)。 function doSomething(value) { if (check1(value)) { return -1; } else if (check2(value)) { return value; } else { return false; } } あなたが見ることができるように、if、else ifおよびelseステートメントは、と組み合わせて使用されているreturn声明。これはカジュアルなオブザーバーにはかなり直感的に思えますが、else-s を削除し、次のようにコードを簡略化する方が(ソフトウェア開発者の観点から)よりエレガントになると思います。 function doSomething(value) { if (check1(value)) { return -1; } if (check2(value)) { return value; } return false; } これは理にかなっています。return(同じスコープ内の)ステートメントに続くすべてが実行されることはないため、上記のコードは意味的に最初の例と等しくなります。 上記のうち、優れたコーディングプラクティスに適しているものはどれですか?コードの可読性に関して、どちらの方法にも欠点はありますか? 編集:参照として提供されたこの質問で、重複した提案が行われました。私の質問は別のトピックに関係していると思います。他の質問で提示されたような重複したステートメントを避けることを求めていないからです。どちらの質問も、わずかに異なる方法ではありますが、繰り返しを減らすことを目指しています。

5
If Else-繰り返されるコードロジック
私の上司は、特定のロジックを持つプロジェクトをくれました。ナビゲーターが製品に到着するまで多くの場合をナビゲートする必要があるWebページを開発する必要があります。 これは、サイト内のナビゲーションのパススキームです。 重要! 製品ページで、ナビゲーターは必要なフィルターを選択できます。 Aの場合、彼/彼女はB(そしてもちろんC)またはCを通過して製品に到達しなければなりません。 Bの場合、彼/彼女はCを通過して製品に到達しなければなりません。 Cの場合、彼/彼女は直接製品に到達します。 もちろん、AIから開始する場合、最長パスをたどり、製品に到達すると3つのアクティブなフィルターがあります。 これまで、私は次のコードを開発しましたが、これは正常に機能します。 if filter_A if filter_B filter_C() .. else .. else filter_C .. else .. else if filter_B filter_C() .. else .. else filter_C() .. else .. この状況で、より専門的なプログラマが何をしたかを尋ねるためにここにいます。私はDRYの原則を尊重しませんでした。私はそれが気に入らず、この種のロジックを開発する別の方法を知りたいです。 関数のコードのすべてのセクションを分割することを考えましたが、この場合は良いアイデアですか?


3
メソッド呼び出しまたはメソッド自体を保護する方が良いですか?
私はアプリケーションを書いていますが、このポイントに到達しました: private void SomeMethod() { if (Settings.GiveApples) { GiveApples(); } if (Settings.GiveBananas) { GiveBananas(); } } private void GiveApples() { ... } private void GiveBananas() { ... } これは非常に簡単です。いくつかの条件があり、それらが真である場合、メソッドが呼び出されています。しかし、私は考えていました、このようにするのがむしろ良いですか? private void SomeMethod() { GiveApples(); GiveBananas(); } private void GiveApples() { if (!Settings.GiveApples) { return; } ... } private void GiveBananas() …

5
すべての条件をキャッチするはずのif-elseラダー-冗長なfinal句を追加する必要がありますか?
これは私が最近よくしていることです。 例: setCircle(circle, i, { current }) { if (i == current) { circle.src = 'images/25CE.svg' circle.alt = 'Now picking' } else if (i < current) { circle.src = 'images/25C9.svg' circle.alt = 'Pick failed' } else if (i > current) { circle.src = 'images/25CB.svg' circle.alt = 'Pick chance' } } …

3
PHPを使用する場合の(null!= $ object)と($ object!= null)の(ある場合)違いは何ですか?
私はJavaに慣れているので、条件は左から右に解釈されると常に考えています。つまりnull != $obj、$obj != null これは、PHPには当てはまらないようです。 常にnull左側から始めると、PHPで何か問題がありますか?Javaからの動作を維持できますか、それともPHPの条件を処理するときに何か他のことをするようにトレーニングする必要がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.