C#方法行程序

时间:2011-12-09 08:42:20

标签: c#

我需要行的方法,这样当你有方法调用Rows (4)时,方法会打印出四个空行。

这是我的代码,但它无法正常工作,告诉我出了什么问题?

namespace something
{ 
  class Program 
  { 
    static void Main(string[] args) 
    { 
      Console.Write("give number: "); 
      int lines = int.Parse(Console.ReadLine()); 
      line(lines); 
      Console.WriteLine("lines end"); 
      Console.ReadKey(); 
    } 

    private static void line(int lines) 
    { 
       for (int i = 1; i <= lines; i++); 
       Console.WriteLine(" ");
    }
  } 
} 

4 个答案:

答案 0 :(得分:4)

最后删除;

for (int i = 1; i <= lines; i++);
                                ^

在这种情况下,你的Console.WriteLine(" ");在循环完成后只调用一次。循环无所事事。

答案 1 :(得分:1)

for (int i = 1; i <= lines; i++);  // note the semicolon!
  Console.WriteLine(" ");

应该是

for (int i = 1; i <= lines; i++)
  Console.WriteLine(" ");

冒号本身就是一个空指令。所以基本上你的程序执行一个空指令 n 次(或实际上是'行'次),之后只会写一次空行。

有趣的是,只有在括号中包含Possible mistaken empty statement行时才会显示Console.WriteLine编译器警告。

无论是什么原因,使用括号似乎都是一个更好的理由,即使对于由单个指令组成的代码块也是如此。

因此我建议:

for (int i = 1; i <= lines; i++)
{
    Console.WriteLine(" ");
}

答案 2 :(得分:0)

for子句末尾的分号是个问题。你的循环没有做任何事情。

for (int i = 1; i <= lines; i++)
  Console.WriteLine(" ");

答案 3 :(得分:0)

首先,您应检查用户输入是否为数字,如果不是,则显示错误消息。如果用户输入了无法解析为int的内容,代码就会抛出异常。

然后在for的结尾处有分号。这是一个编译器错误,我认为你在尝试运行它时已经注意到了。

除此之外,究竟什么不起作用?您的“线”方法对于每个数字都是一个空白区域,而不是一条线。如果要打印空白行,请使用Environment.NewLine