我试图打印一条if语句,但前提是这些值正确且满足要求。但是,if语句位于while循环内,即使if语句中的值不正确时它会要求用户再次尝试,它仍会打印出用户在WriteLine中首次输入的数字,而不是if之外。语句(在其中显示“模拟”)。我希望它要求用户重试,直到这些值满足if语句的必需标准。
namespace Woodchuck
{
class Program
{
static void Main(string[] args)
{
string restart = "Y";
while (restart == "Y")
{
int totalWoodChucks = 0;
int days = 0;
const int MAXDAYS = 10;
const int MINDAYS = 1;
const int MAXWOOD = 100;
const int MINWOOD = 1;
Write("Enter number of woodchucks for this simulation (1-100): ");
int.TryParse(ReadLine(), out totalWoodChucks);
if (totalWoodChucks > MAXWOOD || totalWoodChucks < MINWOOD)
{
WriteLine("Please try again");
}
Write("Enter number of days for this simulation (1-10): ");
int.TryParse(ReadLine(), out days);
if (days > MAXDAYS || days < MINDAYS)
{
WriteLine("Please try again");
}
WriteLine($"SIMULATION 1: {totalWoodChucks} woodchucks over {days} days");
Write("\nTo run another simulation, enter 'Y':");
restart = ReadLine().ToUpper();
}
//Debug pause
WriteLine("Press any key to wrap it up...");
}
}
}
答案 0 :(得分:0)
您可以通过使用while循环直到满足所需条件来做到这一点。
这是您如何执行此操作的简单示例:
int totalWoodChucks = 0;
int days = 0;
const int MAXDAYS = 10;
const int MINDAYS = 1;
const int MAXWOOD = 100;
const int MINWOOD = 1;
bool validWoodChucks = false;
while(!validWoodChucks)
{
Console.Write("Enter number of woodchucks for this simulation (1-100): ");
int.TryParse(Console.ReadLine(), out totalWoodChucks);
if(totalWoodChucks > MAXWOOD || totalWoodChucks < MINWOOD)
{
Console.WriteLine("Invalid woodchucks. Please try again.");
}
else
{
validWoodChucks = true;
}
}
bool validDays = false;
while(!validDays)
{
Console.Write("Enter number of days for this simulation (1-10): ");
int.TryParse(Console.ReadLine(), out days);
if (days > MAXDAYS || days < MINDAYS)
{
Console.WriteLine("Invalid days. Please try again.");
}
else
{
validDays = true;
}
}
Console.WriteLine("Wood chucks: " + totalWoodChucks);
Console.WriteLine("Days: " + days);
Console.ReadLine();
使用示例:
Enter number of woodchucks for this simulation (1-100): -10
Invalid woodchucks. Please try again.
Enter number of woodchucks for this simulation (1-100): 50
Enter number of days for this simulation (1-10): 20
Invalid days. Please try again.
Enter number of days for this simulation (1-10): 10
Wood chucks: 50
Days: 10
答案 1 :(得分:-1)
string restart =“ Y”;
while(restart == "Y")
{
int totalWoodChucks = 0;
int days = 0;
const int MAXDAYS = 10;
const int MINDAYS = 1;
const int MAXWOOD = 100;
const int MINWOOD = 1;
Write("Enter number of woodchucks for this simulation (1-100): ");
int.TryParse(ReadLine(), out totalWoodChucks);
Write("Enter number of days for this simulation (1-10): ");
int.TryParse(ReadLine(), out days);
if((totalWoodChucks > MAXWOOD || totalWoodChucks < MINWOOD) &&(days > MAXDAYS || days < MINDAYS))
{
WriteLine("Please try again");
continue;
}
WriteLine($"SIMULATION 1: {totalWoodChucks} woodchucks over {days} days");
Write("\nTo run another simulation, enter 'Y':");
restart = ReadLine().ToUpper();
}
//Debug pause
WriteLine("Press any key to wrap it up...");
我所做的是在收集所有数据之后进行检查。然后,如果数据不符合要求,它将再次请求再次尝试,直到满足数据为止。