如何正确显示和整理数据?

时间:2016-06-20 16:51:55

标签: algorithm

我有一个对象列表,我希望每个对象有三行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

3 个答案:

答案 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);
}