我正在玩这里的东西,我遇到了麻烦。
我有一个输入;它可以是数字或字母。我必须检查它是数字还是字母。所以我使用了if
。如果输入是一个数字,我的代码应该创建一个int。如果它是一个字母,它应该创建一个不同的int。但由于某种原因,我以后不能使用整数。有什么方法可以解决这个问题吗?
Console.WriteLine("Length (ms)");
string I = Console.ReadLine();
int I2 = Int32.Parse(I);
Console.WriteLine("Height: r for random");
string L = Console.ReadLine();
//So it asks for an input,for which I here want to check what it is
if (L != "r")
{
int He = Int32.Parse(L);
}
else
{
Random Hi = new Random();
int He = Hi.Next(1, 50);
}
//----------------------I want to use the ints in here
while(true)
{
Random R = new Random();
Random R2 = new Random();
int H = R2.Next(1,He);
int rH = H * 100;
Console.WriteLine("Height is {0}",H);
Console.Beep(rH,I2);
答案 0 :(得分:1)
您需要调整int He
的范围,使其超出条件块。
int He;
if (L != "r")
{
He = Int32.Parse(L);
}
else
{
Random Hi = new Random();
He = Hi.Next(1, 50);
}
您还可以使用此示例中的conditional operator来使代码看起来像样式一样可能更适合。
int He = L != "r" ? Int32.Parse(L) : (new Random()).Next(1, 50);
关于上述两个版本,值得注意的一点是,Int32.Parse
可能会根据string L
的格式引发许多异常,您可能希望使用{{1}}来处理这些异常}语句或使用try - catch方法