对于循环模式

时间:2014-04-06 14:45:54

标签: c# for-loop

我的大学任务, 无论如何,我需要制作这种模式 输出:

*
**
***
****
*****
******
*******
********
*********
**********

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Problem_11
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            for (i = 1; i <= 10; i++)
            {
                for (string o = "*";); //Nested for loop
                {
                    Console.Write(o);
                }
                Console.Write("\n");
            }
            Console.ReadLine();
        }

    }
}

错误1只有赋值,调用,递增,递减,等待和新对象表达式才能用作语句

错误2无效的表达式术语')'

错误3无效的表达式术语'{'

错误4)预期

错误5 {预期

5 个答案:

答案 0 :(得分:3)

你不需要内循环,使用string重载让你重复一个字符

for (int i = 1; i <= 10; i++)
{
    Console.WriteLine(String.Format("{0}\n", new String('*', i));
} 

答案 1 :(得分:1)

您可以简化您的解决方案:

...
static void Main(string[] args) {
  // More natural to declare loop variable (int i) in the loop
  for (int i = 1; i <= 10; ++i) 
    Console.WriteLine(new String('*', i)); // <- No inner loop required

  Console.ReadLine();
}
...

答案 2 :(得分:1)

试试这段代码

for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j <=i; j++)
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }

答案 3 :(得分:0)

你的循环在编译后永远不会结束,因为没有条件,但这是另一个问题。一个问题是分号在嵌套的for循环中位于括号之外。

for (string o = "*";;)

答案 4 :(得分:0)

只需更改内部for循环:

 for (int j = 0; j < i; j++)
 {
      Console.Write("*");
 }