我有一个对象列表,我希望每个对象有三行A,B和C.我正在尝试这个,但它仍然在显示器上消失:
for (int i = 0; i < MyListSize * 3; i++)
{
if (i % 3 == 0)
Console.Writeline("C"); // any display function
else if (i % 2 == 0)
Console.Writeline("B"); // any display function
else
Console.Writeline("A"); // any display function
}
有没有人指出我的错误是什么?
当前输出:
C A B C B A C A B C B A
预期产出:
A B C A B C A B C A B C
答案 0 :(得分:5)
您需要更改代码:
for (int i = 0; i < MyListSize * 3; ++i) {
switch (i % 3) {
case 0:
Console.Writeline("A"); // any display function
break;
case 1:
Console.Writeline("B"); // any display function
break;
case 2:
Console.Writeline("C"); // any display function
break;
}
}
答案 1 :(得分:0)
这适用于c#和c ++:
for (int i = 0; i < YourListSize * 3; i++)
{
if (i % 3 == 0)
cout << "A"; // or Console.Writeline()
if (i % 3 == 1)
cout << "B";
if (i % 3 == 2)
cout << "C";
}
答案 2 :(得分:0)
<强> UPD 即可。正如@juharr所说,您的for
循环以0和0(mod 3) = 0
开头,因此您的序列以C
开头。只需将for
行替换为:
for (int i = 1; i <= MyListSize; i++)
..或优化您ifs
直到你清楚地告诉我们你想要什么,才会有神奇的预测,但不是解决方案。像这样:
var s = string.Join(Environment.NewLine, "A", "B", "C");
for (int i = 0; i < MyListSize; i++)
{
Console.Writeline(s);
}