if(false&&false)为什么会进入判断c#

输入一组从小到大排序的数字,从中插入一个数字不打破排序。我输入的1 2 3 5,插入的是4
,经过前面代码的运行此时intarry[1,2,3,5,0]

if (insertnum >= intarry[index] && insertnum <= intarry[index + 1])
{
/将数字后移/
do
{
intarry[index2] = intarry[index1];
index2--;//index2为数组最后一个元素的位置
index1--;//index1为数组倒数第二个元素的位置
} while (index < index1);
intarry[index + 1] = insertnum;
//break;
}

此时是index=3,insertnum=4,进入了判断。

下面是全部代码
using System;
namespace 1
{
class Program
{
static void Main(string[]args)
{
string str = Console.ReadLine();
string[] strarry = str.Split(" ");
int[] intarry = new int[strarry.Length + 1];
int index = 0;
int index1 = intarry.Length - 2;
int index2 = intarry.Length - 1;
for (int i = 0; i < strarry.Length; i++)
{
intarry[i] = Convert.ToInt32(strarry[i]);
}
int insertnum = Convert.ToInt32(Console.ReadLine());
for (; index < strarry.Length; index++)
{
if (insertnum >= intarry[index] && insertnum <= intarry[index + 1])
{
/*将数字后移*/
do
{
intarry[index2] = intarry[index1];
index2--;//index2为数组最后一个元素的位置
index1--;//index1为数组倒数第二个元素的位置
} while (index < index1);
intarry[index + 1] = insertnum;
//break;
}
else if (insertnum > intarry[intarry.Length - 2])
{
intarry[intarry.Length - 1] = insertnum;
break;
}
else
{

            }
        }
        foreach (int temp in intarry)
        {
            Console.Write(temp);
        }
    }
}

}

你手里有IDE,不会断点跟吗
你自己写的代码里有数字后移
那么当index=2时,
4>3&&4<5,5会被移动到0的位置,变成1,2,3,0,5
当index=3时,4>0&&4<5
这有什么问题?

我的测试代码
if(false && false)
{

}

不会进入判断