2017-10-07 6 views
0

私は以下の条件文を使用して、与えられた都市名が有効な長さであることを確認しました。都市の長さは、私は、この条件文をさらに簡素化することができると言われています20このif条件がより簡単に表現されますか?

if(city.length()<3 || city.length()>20) return false; 
else return true; 

に3 以下以上でなければなりません。そうですか?次に、単純化されたコードは何ですか?

+0

リターン(city.length()<3! || city.length()> 20) –

+3

'if/else'ビジネス全体を落として返すだけで、いくつかの言語タグもドロップします – harold

+0

[複数の言語にタグを付けないでください](https:// meta。 stackoverflow.com/questions/354931/when-is-it-appropriateあなたの質問が特にこれらの言語に関するものでない限り、私の質問に/からタグを付けることはできません。あなたはそれがより速い答えにつながると思うかもしれませんが、現実はより速い閉鎖につながる可能性がより高いということです。 –

答えて

2
return !(city.length() < 3 || city.length() > 20) 

または

return city.length() >= 3 && city.length() <= 20 
2

私はのIntelliJ IDEAのIDEからあなたのコードを簡素化。

実際にコードを使用したときに簡略化することを提案しています。 IntelliJ IDEAを試してみることをお勧めします。

return city.length() >= 3 && city.length() <= 20; 

既にIDEを使用している場合は、警告付きのコードにカーソルを移動し、Alt + Enterキーを押して単純化してください。 city.length()が安い場合は、次の2件の評価の可能性を避けるためにcity.length()-計算を事前べき

return city.length() >= 3 && city.length() <= 20 

を書く

+1

と私は正直なところ、このような単純なタスクにIDEを依存しないことを勧めますが、ステートメントが簡略化されて同等であることは明らかです。 – luk2302

+1

@ luk2302私たちは異なる意見を持つことができます。 IDEを使用しているリファクタは、初心者にとって役立ちます。 Eclipseの –

+0

は、これを提案するプラグインはありません – samshers

2

const auto&& /*assuming C++, for Java, you need to use the specific type*/ l = city.length(); 
return l >= 3 && l <= 20; 
+0

提案:lのためにauto &&を使用してください。このようにして、city.length()が複合型への参照を返した場合(例えばstd :: string measure;を持つ場合)、それをコピーするのではなく、refを持ちます。 – lorro

+1

@lorro:それは良い点です:私は答えを修正しました。 – Bathsheba

関連する問題