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(" ");
}
}
}
删除末尾的;
:
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。换行符