c#方法行程序

本文关键字:程序 方法 | 更新日期: 2023-09-27 18:17:32

我需要行方法,这样当你有方法调用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(" ");
    }
  } 
} 

c#方法行程序

删除末尾的;:

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

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

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

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

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

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

不管是什么原因造成的,似乎又多了一个使用括号的好理由,即使对于由单个指令组成的代码块也是如此。

因此我建议:

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

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

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

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

然后在for的末尾有一个分号。这是一个编译器错误,我想你已经注意到当试图运行它。

除此之外,到底是什么出了问题?你的"line"方法是为每个数字打印一个空格,而不是一行。如果要打印空行,请使用Environment。换行符