2017-03-29 4 views
-5
私が来てなければ、質問者のコメント

式脳フェード

// **Don't do xyz between 10.00pm and 7:30am** 
// 
if(hour > 22 || (hour < 7 && minutes < 30) 
    output("too early or too late"); 

に合った単一の論理式を記述しようとしている脳のフェード抱えている

何か神ひどいのように:

if (hour > 20) 
    "Too late"; 

if (hour < 7) 
    "Too early" 
else 
if (hour == 7 && minute < 30) 
      "Too early" 

私を入れてください私の不幸から。

+1

は、2つの – DavidG

+0

が私の悪いを@DavidG ...誰も助けにはならない選択、言語を選んでくださいだろう、私は彼がCライブラリ関数名に言及した関数の名前を間違えました。私は私の編集を元に戻します。 –

+0

私はそれをC#とC++の下に置いて、可能な限り最良のカバレッジを得ます。 – peedurrr

答えて

1

||はあなたの友人です。あなたが複数の条件を持っており、それらのいずれかに該当する場合、あなたが何かをしたい、その後の代わりに、

if (condition1) 
    do_something(); 
if (condition2) 
    do_something(); 
if (condition3) 
    do_something(); 

を使用している場合あなたは、あなたがあなたの場合は、単一の文を持っているものにそれを関連付けるために

if (condition1 || condition2 || condition3) 
    do_something(); 

を使用することができます

if(hour > 21 || hour < 7 || (hour == 7 && minute < 30)) 
    output("too early or too late"); 
+0

22:10のように22時間10分お試しください。 – Equalsk

+0

@EqualskそれはOPが何を望んでいるかによって異なります。彼らが22時以降に欲しいのであれば、 '時間> 21'が必要です。 – NathanOliver

+0

私は、OPが何を望んでいるかはかなりわかりました。いつでも7時半前と22時以降はOKではありません。私が持っている唯一の質問は、これがこれらの時間を含んでいるかどうかということですが、22:10は間違いなく合格しておらず、あなたのサンプルでもそうです... – Equalsk