首页 > 解决方案 > 为什么我的非常简单的 while 循环会重复一次额外的时间?

问题描述

这是我的while循环。该程序对整数求和,直到输入负数。此时循环应该中断并且应该打印“再见”。然而,它每次在说再见之前都会添加负数。我不确定这里出了什么问题。请帮忙?!

import java.util.Scanner;

public class While {
    public static void main(String[] args)
    {
        int input = 5;
        int sum = 0;

        while(input >= 0)
        {
            System.out.println("Please enter a positive integer: ");
            Scanner in = new Scanner (System.in);
            input = in.nextInt();
            sum = sum + input;
            System.out.println("Running total: " + sum );
        }

        System.out.println("Goodbye!" );
    }

测试:

Please enter a positive integer: 

5

Running total: 5

Please enter a positive integer: 

10

Running total: 15

Please enter a positive integer: 
-1

Running total: 14

Goodbye!

我不想得到14的返回值,它应该简单地说再见!

标签: javaloopswhile-loopextra

解决方案


这是我的解决方案:

while(input >= 0)
        {
            sum = sum + input;
            System.out.println("Running total: " + sum );
            System.out.println("Please enter a positive integer: ");
            Scanner in = new Scanner (System.in);
            input = in.nextInt();

        }
        System.out.println("Goodbye!" );
    }

通过在初始化时和输入第一个整​​数之前计算总和。它似乎按照我现在想要的方式工作。谢谢你的帮助。


推荐阅读