java—while循环和for循环的区别

flseospp  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(311)

这个问题在这里已经有答案了

什么是调试器?它如何帮助我诊断问题(2个答案)
两年前关门了。
我是 java 新手。
如果你想知道我要解决的问题,请检查以下内容:http://codeforces.com/problemset/problem/200/b
这两个版本的代码解决了相同的问题:
1-(for loop)版本

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);
}

===================================================
以下是它们各自的输入:

50 50 100
以下是它们各自的输出:
1-(for循环):66.6667
2-(while循环):-200.0

为什么输出不同?

hm2xizp9

hm2xizp91#

n-- 这将更改 n 它会成功的 -1 最后。所以你的总数会减少 -1 然后你得到 -200 但在第一种解决方案中 n 不会改变,最后 200/3 = 66.6

uoifb46i

uoifb46i2#

看起来你在递减n,然后求值,这将允许n变为负

-- X = decrement X then evaluate 

X -- = evaluate X then decrement X

相关问题