Why an if statement is not running inside a coroutine?

Hello,

I am trying to move a robot in my scene. Each motion performed from the corresponding coroutine.
When a counter takes the value=1 i want another movement of the robot to be executed through MoveToPosition2 coroutine. It seems that there in no way the coroutine to execute the if statement inside.
Any ideas??

	IEnumerator Start()
	{
		while (true) 
                {
		    yield return StartCoroutine (robotScript.MoveToPosition1 (5.0f));

. // all the coroutines are in robotScript
if (rawItemNo == 1)
{
yield return StartCoroutine (robotScript.MoveToPosition2 (5.0f));
}
}
}

IEnumerator Start()
{
while (true)
{
yield return StartCoroutine (robotScript.MoveToPosition1 (5.0f));
if (rawItemNo == 1)
{
yield return StartCoroutine (robotScript.MoveToPosition2 (5.0f));
}
}
}