所以我是编码的新手,我正在研究C#以了解基础知识。
基本上,我想在下面的循环中实现我的代码以最大程度地减少重复。我可以使用哪种类型的循环以及如何实现?
if (Counters[0] == 3)
{
Console.WriteLine("3 OAK A pays" + PayCombos[2]);
}
else if (Counters[0] == 4)
{
Console.WriteLine("4 OAK A pays" + PayCombos[1]);
}
else if (Counters[0] == 5)
{
Console.WriteLine("5 OAK A pays" + PayCombos[0]);
}
if (Counters[1] == 3)
{
Console.WriteLine("3 OAK A pays" + PayCombos[5]);
}
else if (Counters[1] == 4)
{
Console.WriteLine("4 OAK A pays" + PayCombos[4]);
}
else if (Counters[1] == 5)
{
Console.WriteLine("5 OAK A pays" + PayCombos[3]);
}
if (Counters[2] == 3)
{
Console.WriteLine("3 OAK A pays" + PayCombos[8]);
}
else if (Counters[2] == 4)
{
Console.WriteLine("4 OAK A pays" + PayCombos[7]);
}
else if (Counters[2] == 5)
{
Console.WriteLine("5 OAK A pays" + PayCombos[6]);
}
答案 0 :(得分:1)
您可以使用循环使用foreach
来检查数组的每个成员:
int[] Counters = {1, 2, 3, 4, 5};
foreach (int counter in Counters)
{
if (counter == 3) Console.WriteLine("3 OAK A pays" + PayCombos[2]);
else if (counter == 4) Console.WriteLine("4 OAK A pays" + PayCombos[1]);
else if (counter == 5) Console.WriteLine("5 OAK A pays" + PayCombos[0]);
}
或for
:
for(int i = 0; i < Counters.Length; i++)
{
if (Counters[i] == 3) Console.WriteLine("3 OAK A pays" + PayCombos[2]);
else if (Counters[i] == 4) Console.WriteLine("4 OAK A pays" + PayCombos[1]);
else if (Counters[i] == 5) Console.WriteLine("5 OAK A pays" + PayCombos[0]);
}
答案 1 :(得分:0)
很好的问题。
当您要重复操作时,循环是完美的选择。您显然要对多个计数器重复代码的“计数器检查”部分,因此它是使用循环的理想选择。
我认为,最简单的实现方法是将重复的逻辑封装在一个函数中,并将该逻辑与它所针对的“事物”隔离开。在这种情况下,您正在操作列表中的计数器,并且正在检查值。我建议编写一个简单的函数来对计数器进行检查(即删除列表/数组),然后在循环内调用该函数。
所以
void checkCounter(counter)
{
if (counter == 3)
{
Console.WriteLine("3 OAK A pays" + PayCombos[8]);
}
else if (counter == 4)
{
Console.WriteLine("4 OAK A pays" + PayCombos[7]);
}
else if (counter == 5)
{
Console.WriteLine("5 OAK A pays" + PayCombos[6]);
}
}
然后遍历您的计数器就像
foreach (int counter in Counters)
{
checkCounter(counter)
}