2017-11-06 32 views
-6

可能かどうかわからない。三項演算子を使って条件文を書くと、1行書きます。私のコードは次のとおりです。1行書き込む場合JAVaの3進演算子を使用した文の場合

if(preconditionflag.equals("skip")){ 
System.out.println("Skipping this testcase due to earlier testcase failed"); 
return flag = "skip"; 
} else { 
flag = "pass"; 
} 

precondflagとflagは文字列パラメタです。また、 "else"部分はオプションですので、else部分(flag = "pass")またはそれを除いたコードを提供してください。 ありがとうございます。

+0

※可能かどうかはわかりません。 –

+0

this:*** precondflag == "スキップ" ***決してJavaではありません –

+0

あなたの例の 'if'ケースには、メソッドが呼び出された場所へのコントロールフローを移動する' return'キーワードが含まれています。三項演算子はそれを行うことはできません。条件に基づいているだけで、あなたが指定した2つの値のいずれかが返されます。私はあなたがここで何をしようとしているのか分かりませんし、不明確な質問は下投票になる傾向があります。おかげさまで – Pshemo

答えて

0

私はあなたの実際のコードは次のようになりますと仮定します。そうでない場合

if (preconditionflag.equals("skip")){ 
    System.out.println("Skipping this testcase due to earlier testcase failed"); 
    flag = "skip"; 
} else { 
    flag = "pass"; 
} 

あなたがメソッドから返さ一部のメソッドから戻っていないことができないので、あなたの質問への答えは、ノーすでにあります三項演算の他の部分では、

ここでの三項演算に対して反対の障害は、STDOUTの出力です。三項演算子はそれを許可していませんが、あなたが本当にあなたに必要がある場合は、ヘルパーメソッドを作成することによって、それを解決することができます。

private void myMethod() { 
    ... 
    flag = preconditionflag.equals("skip") ? 
      showMessageAndReturn("Skipping this testcase due to earlier testcase failed", "skip") : 
      "pass"; 
    ... 
} 

private String showMessageAndReturn(String message, String retVal) { 
    System.out.println(message); 
    return retVal; 
} 

これはまさにあなたの質問に次のような答えですが、私はそれのために実際の使用を参照するには困難を持っています実生活では。

+0

私は本当の使い方を説明しましょう。テストアプリケーションがログアウトまたは不安定になり、タイムアウトまでロードを維持すると、preconditionflagは「スキップ」になります。したがって、preconditionflagが「スキップ」になると、フラグを「スキップ」として割り当て、実行から残りのステップをスキップして戻ります。その後、フラグステータス「スキップ」を使用してExcelに結果を書き戻します。あなたの答えは私の必要性に非常に近いです。ありがとうございました。 – user7615535

関連する問題