所以我试图创建一个允许用户插入长度和宽度值的程序,然后调用另一个方法来计算面积和周长。但是,我似乎无法通过用户输入部分。
整个程序在我输入长度后关闭。我读到在你按下回车键后终止了Read命令,所以我想知道我应该如何让用户输入多个值。我尝试将WriteLine命令放在Read命令之间,但这并不能阻止程序关闭。
这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IntroToCSharp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Length?");
int length = Console.Read();
Console.WriteLine("Width?");
int width = Console.Read();
Console.WriteLine("Good!");
Perimeter(length, width);
}
public static double Area(int length, int width)
{
return length * width;
}
}
}
答案 0 :(得分:3)
Console.Read
只读取一个字符 - 但它会一直等到你按Enter键才能这样做。所以正在发生的事情是你输入的内容然后点击输入,然后Console.Read
将返回,然后你会尝试读取另一个角色 - 已经存在!
要读取整数作为完整的行,您应该使用类似:
string line = Console.ReadLine();
int width = int.Parse(line);
请注意,如果无法解析该值,则会抛出异常。请考虑使用int.TryParse
来干净地处理无效的用户输入。
一旦你到达程序的末尾,可能自动终止,或者可能等待你返回 - 取决于你如何运行它。您始终可以向Console.ReadLine()
添加另一个电话给强制它等待用户至少再次输入一次(或者在某些情况下为两次)。或者从命令行运行程序,在这种情况下它将终止但你仍然会看到结果。