C# または Java のさまざまなスコアに基づいて文字列を返す良い方法を探しています。たとえば、double で表される次のスコアがあるとします。
double scoreIQ = 4.0;
double scoreStrength 2.0;
double scorePatience 9.0;
上記のスコアに基づいて文字列を返したいとしましょう。以下とは異なり、これを明確で理解しやすい方法で構造化する良い方法は何でしょうか。
public static string ReturnScore(double scoreIQ, double scoreStrength, double scorePatience)
{
if (scoreIQ <= 5.0)
{
if (scoreStrength <= 5.0)
{
if (scorePatience <= 5.0)
{
return "You're stupid, weak, and have no patience";
}
else if (scorePatience <= 7.5)
{
return "You're stupid, weak, and have some patience";
}
else
{
return "You're stupid, weak, and have a lot of patience";
}
}
//Continue elseif return string permutations here
}
//Continue elseif return string permutations here
}
すぐに思いつくのは、ハードコーディングされた文字列を削除し、スコアに基づいて文を作成するキーワード/フレーズの文字列クリエーターを使用することです。ネストされた if ステートメントを使用したくありません。3 つのスコアを超えたい場合はどうすればよいでしょうか。順列は指数関数的に増加します。
上記は単なる例であり、私が探しているのは、そのようなシナリオを処理できる構造です。明らかに、これは間違ったやり方です。私を正しい方向に導いてくれる人を探しています。ありがとう!