Rotation seems to pass through condition checks

Hello.

I have a slight problem (well, kinda big) when it comes to rotating my Camera. It will not stop rotating and continues to rotate even after turning a full 360 along the X axis

The only thing I wish to accomplish is rotating the Camera by 90 degrees so it looks towards the ground.

			IEnumerator Rotate_GodMode_Camera()
			{
			 // This function will explicitly deal with the rotation of the Camera. 
				while (_godMode)
				{
					if (Camera.main.transform.rotation.x != 90f)
					{
						Camera.main.transform.Rotate(new Vector3(90 * Time.deltaTime, 0, 0)); //Rotate the Camera by 90 degrees every second
						yield return new WaitForSeconds(.001f);
					}
					else if (Camera.main.transform.rotation.x >= 90f)
					{
						break;				
					}
				}
			}

So when the input is detected, it starts this Coroutine.

I plan on adding a lot more to this once this basic part is figured out, and a coroutine is the way that I need to go to accomplish what I want.

I managed to get this to work if I use a generic i int variable and ++ after 1 second of WaitForSeconds, but is there a reason why this seems to be ignoring conditions?

Transform.rotation is a 4D quaternion, which does not use degrees (everything is normalized), nor do the x/y/z elements directly correspond to x/y/z axes.