Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我的for循环中到底发生了什么_C#_Loops_For Loop - Fatal编程技术网

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;
            }
    
            ...
         }