Could the function below go into an infinite loop for some values of x?
Justify your answer.
// display the square root of x void displaySquareRoot(float x) { float lower, upper; if (x < 0) { displaySquareRoot(-x); cout << "i"; } else { if (x < 1) { lower = 0; upper = 1; } else { lower = 1; upper = x; } do { float middle = (lower + upper) / 2; float square = middle * middle; if (square == x) { lower = middle; upper = middle; cout << middle; } else if (square < x) { lower = middle; } else { upper = middle; } } while (lower < upper); } }