C# 有没有一种更有效的方法来进行测验,并根据答案是否大多是肯定的而得出两种不同的结果?

C# 有没有一种更有效的方法来进行测验,并根据答案是否大多是肯定的而得出两种不同的结果?,c#,if-statement,console,C#,If Statement,Console,这是一个测验,根据至少50%的答案是“是”或“是”,确定用户是否喜欢鸡蛋 Console.WriteLine ("This quiz will find out if you like eggs"); Console.WriteLine ("Do you like ketchup? (yes/no)"); string quiz1 = (Console.ReadLine()); bool quiza1 = (quiz1.Contains("yes")); Console.WriteLine

这是一个测验,根据至少50%的答案是“是”或“是”,确定用户是否喜欢鸡蛋

Console.WriteLine ("This quiz will find out if you like eggs");

Console.WriteLine ("Do you like ketchup? (yes/no)");
string quiz1 = (Console.ReadLine());
bool quiza1 = (quiz1.Contains("yes"));

Console.WriteLine ("Do you like bread? (yes/no)");
string quiz2 = (Console.ReadLine());
bool quiza2 = (quiz2.Contains("yes"));

Console.WriteLine ("Do you like to read? (yes/no)");
string quiz3 = (Console.ReadLine());
bool quiza3 = (quiz3.Contains("yes"));

Console.WriteLine ("Do you like soda? (yes/no)");
string quiz4 = (Console.ReadLine());
bool quiza4 = (quiz4.Contains("yes"));

if (quiza1 == true && quiza2 == true || quiza1 == true && quiza3 == true || quiza1 == true && quiza4 == true || quiza2 == true && quiza3 == true || quiza2 == true && quiza4 == true || quiza3 == true && quiza4 == true)
{
    Console.WriteLine ("You probably like eggs");
}
else
{
    Console.WriteLine ("I don't think you like eggs");
}

我特别希望用更简洁的语句替换
if
语句。

您可以计算“是”答案的数量,并使用以下条件:

int countyes  = 0;

Console.WriteLine ("Do you like ketchup? (yes/no)");
string quiz1 = (Console.ReadLine());
if (quiz1.Contains("yes"))
    countyes++;
//repeat for all questions
if (countyes >= 2)
    Console.WriteLine ("You probably like eggs");
else
    Console.WriteLine ("I don't think you like eggs");

您可以在循环中完成所有操作,只需计算答案中包含“是”的数量:

首先,(quiza1==true&&quiza2==true)与(quiza1&&quiza2)相同
string[] quizzes = new string[]
{
    "Do you like ketchup? (yes/no)",
    "Do you like bread? (yes/no)",
    "Do you like to read? (yes/no)",
    "Do you like soda? (yes/no)"
}

int truecount = 0;
foreach(var quiz in quizzes)
{
    Console.WriteLine (quiz);
    if(Console.ReadLine().ToLower().Contains("yes"))
        truecount++;
}

if(truecount > quizzes.Length / 2) // here it is your choice to use > or >= or even more cases like if(truecount == quizzes.Length) you love eggs else if ....
{
  Console.WriteLine ("You probably like eggs");
}
else
{
  Console.WriteLine ("I don't think you like eggs");
}