while循环和for循环之间的区别

时间:2018-12-06 14:51:56

标签: java for-loop while-loop

我是Java的新手。

如果您想知道我要解决的问题,请检查以下内容:http://codeforces.com/problemset/problem/200/B

这两个版本的代码可以解决相同的问题:

1-(用于循环)版本

public static void method() {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    double sum = 0;
    for (int i = 0; i < n; i++)
        sum += (sc.nextInt() / 100.0);

    System.out.println(sum * 100.0 / n);
}

2-(while循环)版本

    public static void method() {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    double sum = 0;

    while (n-- > 0) {
        sum += (sc.nextInt() / 100.0);
    }
    System.out.println((sum * 100.0) / n);
}

================================================ ====

以下是其中每个输入:

3

50 50 100

这是它们每个的输出:

1-(用于循环):66.66666666666667

2-(while循环):-200.0

================================================ ====

为什么输出不同?

2 个答案:

答案 0 :(得分:1)

n--,这将更改n的值,并使其最终为-1。 因此您的总和将为-1,而您得到-200,但在第一个解决方案中n不会改变,最后为200/3 = 66.6

答案 1 :(得分:0)

您似乎先递减n,然后求值,这将使n变为负数

-- X = decrement X then evaluate 


X -- = evaluate X then decrement X