if (testModetrue)
{
try
{
Console.Write("What number do you want the roll to be set to? (1-6)");
string diceString = Console.ReadLine();
int diceCheck = int.Parse(diceString);
if ((diceCheck >= minDiceValue) || (diceCheck <= maxDiceValue))
{
diceNo = int.Parse(diceString);
}
else if ((diceCheck <= minDiceValue) || (diceCheck >= maxDiceValue))
{
Console.WriteLine("Please enter a number between 1-6.");
break;
}
}
catch (Exception)
{
Console.WriteLine("An error has occured.");
return;
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码检查给出的答案是否超过6或低于1,但无论何时我运行它,无论如何它会抛出数组错误,有人帮忙吗?
小智 6
int diceCheck = int.Parse(diceString);
if ((diceCheck >= minDiceValue) || (diceCheck <= maxDiceValue))
{
diceNo = int.Parse(diceString);
}
Run Code Online (Sandbox Code Playgroud)
这个条件应该是AND而不是OR.此外,由于您在条件之前解析字符串,因此您不需要在其中进行,因此您应该将该部分更改为:
int diceCheck = int.Parse(diceString);
if (diceCheck > maxDiceValue && diceCheck < minDiceValue)
{
Console.Writeline("Please write a number between 1 and 6");
break;
}
Run Code Online (Sandbox Code Playgroud)
你的其他if语句也是多余的,因为你已经有了其他dicecheck带有值的variable(),所以删除它.