使用嵌套for循环重新运行程序

时间:2014-01-22 20:15:23

标签: c#

我刚刚开始学习如何使用c#编程,所以如果我有“愚蠢”的问题或问题,请不要开枪,答案可能是非常符合逻辑的。

我有下一个任务:

使用for循环编写下一个模式:

1 2 3 4 5 6 7 8 9 10 10
11 12 13 14 15 16 17 18 19 20 20
21 22 23 24 25 26 27 28 29 30 30
31 32 33 34 35 36 37 38 39 40 40
41 42 43 44 45 46 47 48 49 50 50
51 52 53 54 55 56 57 58 59 60 60
61 62 63 64 65 66 67 68 69 70 70
71 72 73 74 75 76 77 78 79 80 80
81 82 83 84 85 86 87 88 89 90 90
91 92 93 94 95 96 97

用户必须能够设置最大值(在本例中为97),然后重新运行应用程序而不重新启动。

我现在正在尝试的是:

class Program
{
    static void Main(string[] args)
    {
        string output = "", input = "";
        int MaxWaarde, karakters = 15;
        do
        {           
            Console.WriteLine("Gelieve het maximum van de matrix in te geven");
            input = Console.ReadLine();
            MaxWaarde = Convert.ToInt32(input);

            for (int i = 1; i <= MaxWaarde; i += 11)
            {
                Console.Write(i);
                for (int j = i; j < MaxWaarde + 1; j += karakters)
                {
                    Console.Write(j);
                }                   
                Console.WriteLine(karakters + "");
            }             
            Console.Write("\nOpnieuw een matrix aanmaken? (y/n): ");
            output = Console.ReadLine();
        }           
        while (output.ToLower() == "y");
    }
}

这根本不正确,但我一直试图解决这个问题一段时间了,我想我一直盯着这个,所以我真的不知道哪个方法可以用这个了。

有人可以就如何做到这一点给我一些建议吗?

3 个答案:

答案 0 :(得分:1)

嵌套for循环在这里看起来不是一个好主意。你可以用一个for循环来完成。你在每一步都递增i +11,可能你的错误是这里。考虑一下:

for (int i = 1; i <= MaxWaarde; i++)
{ 
    if(i % 10 != 0) Console.Write(i + " ");
    else
    {
       Console.Write(i + " " + i + "\n");
    }
}

%modulus operator。我们正在寻找余下的currentNumber / 10,如果它不为零我们写number.如果是,那么我们写两次值并添加一个newline character\n进入下一行。您也可以使用Console.WriteLine()代替\n

答案 1 :(得分:0)

Loop1:按步数1从1开始向上计数。如果数字是10的倍数,则会使用换行符再次写入该数字。

Loop2:按照用户的意愿再次执行loop1。

答案 2 :(得分:0)

你去吧

    public static void Main(string[] args)
    {
        for (;;)
        {
            var val = int.Parse(Console.ReadLine());

            for (int i = 1; i <= val; i++)
            {
                if (i % 10 == 0)
                {
                    Console.WriteLine("{0} {0}", i);
                }
                else
                {
                    Console.Write("{0} ", i);
                }
            }

            Console.WriteLine();
        }
    }