boolean found = false;
while (found)
仅此一项就确保了while循环将永远不会进入,因为它found
是false。while循环中的任何内容都没有任何区别,因为它将永远不会执行。
你可能想写
while (!found)
除了此错误外,您的情况也过于复杂。这是您可以简化它们的方法:
if ((position0 == (3 * position2)) && // note that position0 is the "thousands place", not position3
((position0+position1+position2+position3) == 27) && // sum of digits
(position3 % 2 == 1) && // odd number
(position0 != position1 && position0 != position2 && position0 != position3 &&
position1 != position2 && position1 != position3 && position2 != position3)) { // different digits
found = true;
}