休息;我最后的休息;给我一个 :Unreachable statement 错误,任何线索为什么?

Break; My final break; gives me an :Unreachable statement error, any clue why?

DecimalFormat neat = new DecimalFormat("#.00");
Scanner keyboard = new Scanner(System.in);
boolean yes = (true);
do{
int quarter;

while (true) {
System.out.print("Enter number of quarters (1-10): ");
if (keyboard.hasNextInt() && (quarter = keyboard.nextInt()) >= 1 && quarter <= 10)
break;
keyboard.nextLine(); // Discard bad input
System.out.println("Number of quarters must be between 1 and 10");
              }
keyboard.nextLine(); // Discard rest of line
System.out.println("You have " + quarter + " quarters.");

double intrestRate;
while (true) {
System.out.print("Enter interest rate (5%-25%), without percent sign: ");
if (keyboard.hasNextDouble() && (intrestRate = keyboard.nextDouble()) >= 5 && intrestRate <= 25)
break;
keyboard.nextLine(); // Discard bad input
System.out.println("Interest rate must be between 5% and 25%");
             }
keyboard.nextLine(); // Discard rest of line
System.out.println("You have selected a " + intrestRate + "% rate of interest.");


double balance;
while (true) {
System.out.print("Enter beginning principal balance, that is greater than zero: $");
if (keyboard.hasNextDouble() && (balance = keyboard.nextDouble()) > 0);
break;
keyboard.nextLine();
System.out.print("Beginning balance must be greater than zero.");
             }

我已经为此代码工作了大约三天,我正在试验三种变体。这是迄今为止我最喜欢的,也是最复杂但比其他方法更有效的。 *在他人的帮助下。但为什么我会得到这个:Unreachable statement error?

最后一个 while 循环

    if (keyboard.hasNextDouble() && (balance = keyboard.nextDouble()) > 0);

和表达式末尾的分号 导致错误 - 你有一个空的 if body 并且中断那个(我猜测)应该在每次使结束代码无法访问时触发