我被数组困住了,需要一些帮助。
我有两个数组,我正在使用 foreach 循环比较它。我希望程序只在有两个数字winningNumbers与someNumbers. 如果只有一场比赛,输出应该是“你输了”
(我必须使用循环来解决这个问题)
int[] someNumbers = { 1, 2, 3, 4, 5, 6 };
int[] winningNumbers = { 1, 2, 13, 14, 15, 16 };
bool winning = false;
foreach (var item1 in someNumbers)
{
foreach (var item2 in winningNumbers)
{
if (item1 == item2)
{
winning = true;
}
}
}
if (winning == true )
{
Console.WriteLine("You won");
}
else
{
Console.WriteLine("You lost");
}
Run Code Online (Sandbox Code Playgroud)
每场比赛使用一个计数器。如果>= 2,则报告胜利。如果您要求它恰好是两个匹配项,请删除 > 运算符。在这里尝试一下: https: //dotnetfiddle.net/sjYbYk
编辑:添加字符串生成器以报告获胜比赛。
using System;
using System.Text;
public class Program
{
public static void Main()
{
int[] someNumbers = { 1, 2, 3, 4, 5, 6 };
int[] winningNumbers = { 1, 2, 13, 14, 15, 16 };
int matched = 0;
StringBuilder sb = new StringBuilder();
sb.Append("You Matched ");
foreach (var item1 in someNumbers)
{
foreach (var item2 in winningNumbers)
{
if (item1 == item2)
{
matched++;
sb.Append(item1 + ",");
}
}
}
if (matched >= 2 )
{
Console.WriteLine("You won");
Console.WriteLine(sb.ToString().TrimEnd(','));
}
else
{
Console.WriteLine("You lost");
}
}
}
Run Code Online (Sandbox Code Playgroud)