Как говорит Павел, вы должны иметь "||"(или оператор) не "&&" (и оператор) в условии while.Вы хотите выполнить цикл, пока оба не будут одинаковыми, поэтому вы хотите продолжить, если оба неравны.
Не менее важно, что вы не должны использовать сравнения с равными для сравнения с плавающей запятой.Неточность с плавающей запятой означает, что вы не должны полагаться на значения, чтобы быть точно равными.Хотя весьма вероятно, что одно и то же значение, считанное из файла, будет давать точно такое же значение в машинном представлении, это не гарантируется.Вам следует подумать об изменении формата файла, чтобы указать конец многоугольника другим способом.Если это невозможно, рассмотрите возможность использования менее точного сравнения, такого как координаты, равные некоторому небольшому уровню точности (скажем, 1e-6).Итак:
while (Math.abs(x-fx)<1e-6 || Math.abs(y-fy)<1e-6) {