C# 我的for循环中到底发生了什么
这是我当前的代码:C# 我的for循环中到底发生了什么,c#,loops,for-loop,C#,Loops,For Loop,这是我当前的代码: string userName = ""; int v1 = 0, v2 = 0, v3 = 0, v4 = 0, v5 = 0; int sum = 0; float avg; float variance; Console.WriteLine("Please enter your name:"); userName = Console.ReadLine();
string userName = "";
int v1 = 0, v2 = 0, v3 = 0, v4 = 0, v5 = 0;
int sum = 0;
float avg;
float variance;
Console.WriteLine("Please enter your name:");
userName = Console.ReadLine();
Console.WriteLine("Please enter in a number between 10 and 50: ");
int inputCheck = 0;
inputCheck = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i <= v5; i++)
{
if (i == v1)
{
v1 = inputCheck;
if (v1 < 10 || v1 > 50)
{
Console.WriteLine("The number you have entered is invalid please enter a new variable: ");
}
continue;
}
if (i == v2)
{
v2 = inputCheck;
if (v2 < 10 || v2 > 50)
{
Console.WriteLine("The number you have entered is invalid please enter a new variable: ");
}
continue;
}
if (i == v3)
{
v3 = inputCheck;
if (v3 < 10 || v3 > 50)
{
Console.WriteLine("The number you have entered is invalid please enter a new variable: ");
}
continue;
}
if (i == v4)
{
v4 = inputCheck;
if (v4 < 10 || v4 > 50)
{
Console.WriteLine("The number you have entered is invalid please enter a new variable: ");
}
continue;
}
if (i == v5)
{
v5 = inputCheck;
if (v5 < 10 || v5 > 50)
{
Console.WriteLine("The number you have entered is invalid please enter a new variable: ");
}
continue;
}
string userName=”“;
int v1=0,v2=0,v3=0,v4=0,v5=0;
整数和=0;
浮动平均值;
浮动方差;
Console.WriteLine(“请输入您的姓名:”);
userName=Console.ReadLine();
Console.WriteLine(“请输入一个介于10和50之间的数字:”);
int inputCheck=0;
inputCheck=Convert.ToInt32(Console.ReadLine());
对于(int i=0;i 50)
{
Console.WriteLine(“您输入的数字无效,请输入新变量:”);
}
持续
}
如果(i==v2)
{
v2=输入检查;
如果(v2<10 | | v2>50)
{
Console.WriteLine(“您输入的数字无效,请输入新变量:”);
}
持续
}
如果(i==v3)
{
v3=输入检查;
如果(v3<10 | | v3>50)
{
Console.WriteLine(“您输入的数字无效,请输入新变量:”);
}
持续
}
如果(i==v4)
{
v4=输入检查;
如果(v4<10 | | v4>50)
{
Console.WriteLine(“您输入的数字无效,请输入新变量:”);
}
持续
}
如果(i==v5)
{
v5=输入检查;
如果(v5<10 | | v5>50)
{
Console.WriteLine(“您输入的数字无效,请输入新变量:”);
}
持续
}
我正在让控制台正确识别,如果v1大于50或小于10,它会给出消息。但是代码停止并不再继续要求变量。我试着跟踪for循环和if循环中发生的事情,但我只是迷路了。我的任务是使用循环和一个控制台获取5个变量。readlin();。如果这有助于解释我为什么要问这个问题。您的循环中出现了一些错误:
for(int i=0;i 50))
{
开关(一)
{
案例1:
v1=输入检查;
打破
案例2:
v2=输入检查;
打破
案例3:
v3=输入检查;
打破
案例4:
v4=输入检查;
打破
案例5:
v5=输入检查;
打破
}
}
}
您需要将控制台放入WriteLine(“请输入您的姓名:”)
和userName=Console.ReadLine()如果您想再次输入,请在for
循环的开始处添加code>。嗯,看起来v5
是0,因此您的循环只运行一次
for (int i = 0; i <= v5; i++) //this will be true only once because v5 = 0
for(inti=0;i您的代码有一些问题。正如其他人所指出的
int v5 = 0;
for (int = 0; i < v5; i++) ...
for(int i=0;i 50)
{
Console.WriteLine(“您输入的数字无效,请输入新变量:”);
}
持续
}
...
}
循环将只有第一次迭代。
因为在第一次迭代中有continue;
。
v5
将始终为0。i
将在第一次继续之后更改为1;
然后i 0:)),循环将完成。看看你的循环正在做什么。所有vX编号都设置为零,循环从0开始,它们都进行完全相同的检查,这意味着在第一次迭代时,所有vX编号都会触发错误代码>将从控制台读取您正在使用的代码wrong@Marc是的,我明白你的意思。谢谢你指出这一点。谢谢你回答我的问题。@Bojankogj:没有?一个同学和我分享了这个,你能解释一下它到底在做什么吗?谢谢你回答我的问题。当他只是想学点东西的时候,问自己一个问题有什么意义?是的,我明白你在说什么。我想我对应该放在那里的东西感到困惑。他不想从说明书上看到任何数组或列表。我认为这是通过每个变量,直到它达到第五个。但显然情况并非如此?因此,我考虑添加您在这里所做的工作。当我运行程序并输入一个变量时,我得到一条IndexOutOfRangeException was unhandled消息。我查看了那个错误的含义,但我不知道它与这个场景有什么关系。我的原始代码中的for循环有一个问题<代码>我啊,好吧,我相信我现在明白为什么我会收到那个错误了。我想感谢你花时间帮助我。非常感谢,没问题。很抱歉,在发布之前没有彻底测试我的代码。这确实帮了我不少忙。我想感谢你花时间帮助我进一步理解这一点。我理解你为什么这么说,这确实有帮助。我想感谢你花时间帮助我理解我在做什么。
int v5 = 0;
for (int = 0; i < v5; i++) ...
string userName = "";
int[] v= new int[5];
int sum = 0;
float avg;
float variance;
Console.WriteLine("Please enter your name:");
userName = Console.ReadLine();
Console.WriteLine("Please enter in a number between 10 and 50: ");
for (int i = 0; i < v.Length; i++)
{
int inputCheck = Convert.ToInt32(Console.ReadLine());
while (inputCheck < 10 || inputCheck > 50)
{
Console.WriteLine("The number you have entered is invalid please enter a new variable: ");
inputCheck = Convert.ToInt32(Console.ReadLine());
}
v[i] = inputCheck;
}
for (int i = 0; i <= v5; i++)
{
if (i == v1)
{
v1 = inputCheck;
if (v1 < 10 || v1 > 50)
{
Console.WriteLine("The number you have entered is invalid please enter a new variable: ");
}
continue;
}
...
}