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