如何将输出打印在另一行之下?

时间:2014-05-27 23:34:29

标签: c#

例如,我试图以下列方式打印输出:
盘:1 2 3 4 5
移动:1 3 7 15 31
我怎么能这样做,有人可以帮帮我吗?

{
    class Program
 {
    static void Main(string[] args)
    {
        int n = 2;

        for (int j = 1; j <= 5; j++)
            Console.WriteLine("disk: {0}", j);

        for (int i = 1; i <= 5; i++)                               
                Console.WriteLine("moves: {2:N0}",
                                  n, i,(long)Math.Pow(n, i) - 1);

    }

  }
}

3 个答案:

答案 0 :(得分:2)

听起来,

Console.WriteLine每次都会写一个新行。如果您不想要这种行为,请使用Console.Write

Console.Write("Disk:");
for (int j = 1; j <= 5; j++)
     Console.Write(" {0}", j);
Console.WriteLine();

Console.Write("Moves:");
for (int i = 1; i <= 5; i++)                               
     Console.Write(" {2:N0}", (long)Math.Pow(n, i) - 1);
Console.WriteLine();

答案 1 :(得分:1)

使用string.PadLeft()方法来证明您的文字。当然,您可以使用常量值替换幻数。这样您就可以不必计算空格,并自动添加适量的空格以使字符串达到所需的长度。

请注意,您也可以摆脱格式插入(即不再有花括号)。

static void Main(string[] args)
{
    int power = 2;

    Console.Write("disk:".PadLeft(8));
    for (int j = 1; j <= 5; j++)
        Console.Write(j.ToString().PadLeft(5));

    Console.WriteLine();
    Console.Write("moves:".PadLeft(8));
    for (int i = 1; i <= 5; i++)
        Console.Write(((long)Math.Pow(power, i) - 1).ToString().PadLeft(5));


    Console.WriteLine();
    Console.ReadLine();
}

结果如下:

enter image description here

答案 2 :(得分:0)

您可以使用Console.Write,它不会打印回车。

但是在这种情况下你不需要for循环。只需使用Enumerable.Range

即可
  var n = 2;
  var disks = Enumerable.Range(1, 5).ToList();
  var moves = Enumerable.Range(1, 5).Select(i => (long) Math.Pow(n, i) - 1);
  Console.WriteLine("disk: {0}", string.Join(" ", disks));
  Console.WriteLine("moves: {0:N0}", string.Join(" ", moves));

结果:

  

disk: 1 2 3 4 5 moves: 1 3 7 15 31