有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java扫描程序和while循环添加

我昨天刚发了帖子,但我回来问了另一个问题,我知道这个问题的答案,但我被他们是如何得到它的

import java.util.*;
public class test {

public static void main(String[] args) {
    String s = "12 13 14 15 18 16 17 20 2";
    Scanner c = new Scanner(s);
    int sum = 0;
    while(c.nextInt()% 2 == 0)
        sum += c.nextInt();
    System.out.println(sum);
  }
}

输出是44,但我自己一直得到46。我可能做错了,因为我对c.nextInt()的工作原理不太熟悉

我想是这样的:

12 % 2 = 0, so add 13
14 % 2 = 0, so add 15
18 % 2 = 0, so add 16
17 % 2 =/= 0, so skip
20 % 2 = 0, so add 2
for a total of = 46

我错过什么了吗

编辑:解决了,忘记了循环不仅仅是“跳过”。我很笨


共 (3) 个答案

  1. # 1 楼答案

    以下是每次循环中的细分:

    • c、 nextInt()获取12,12%2==0,因此此条件为TRUE
      • sum=0和c.nextInt()=13,因此sum+=13等于13
    • 第二个c.nextInt()得到14,14%2==0,所以这个条件是真的
      • sum=13和c.nextInt()=15,因此sum+=15等于28
    • c、 nextInt()得到18,18%2==0,因此此条件为TRUE
      • sum=0和c.nextInt()=16,因此sum+=16等于44
    • c、 nextInt()得到17,17%2==1,因此此条件为FALSE,循环退出

    印刷品44

  2. # 2 楼答案

    是的,这里的答案是44。在这里,您将重复while循环,直到(编号%2==0)变为FALSE。 就你而言:

    您正在添加13+15+16,下一个检查while条件的数字是17

    此处(17%2==0)为FALSE,因此条件失败,不进入循环

    总数为44(13+15+16)

    我希望这会有帮助

  3. # 3 楼答案

    Java while循环用于执行语句,直到条件为true为止。如果条件为false,则会中断此while循环。所以

    17%2!=0,此while循环将被中断。所以sum=44