首页 > 解决方案 > (Java) While 之和

问题描述

所以我想总结我从 system.out.print` 得到的所有数字,除了 0(最后一个)。

import java.util.Scanner;

public class Kilometrikorvaus {

    public static void main(String[] args) {
        Scanner lukija = new Scanner(System.in);
        int km= 0, luku= 0;
        while (km < 10) {
           System.out.print("Anna ajetut kilometrit (0 lopettaa): ");
           luku = lukija.nextInt();
           km++;
           if (luku == 0) {
              break;
           }     
        }

        while (luku != 0) {
           km = km + luku;
           System.out.println("Anna ajetut kilometrit (0 lopettaa): ");
           luku = lukija.nextInt();
        }
        System.out.println("Yhteensä " + luku + " kilometriä"); 
    }
}

这是扫描仪应该喜欢的:

Anna ajetut kilometrit (0 lopettaa): 12
Anna ajetut kilometrit (0 lopettaa): 13
Anna ajetut kilometrit (0 lopettaa): 10
Anna ajetut kilometrit (0 lopettaa): 5
Anna ajetut kilometrit (0 lopettaa):  0
**Yhteensä 40 kilometriä**

矿 :

Anna ajetut kilometrit (0 lopettaa): 12
Anna ajetut kilometrit (0 lopettaa): 13
Anna ajetut kilometrit (0 lopettaa): 10
Anna ajetut kilometrit (0 lopettaa): 5
Anna ajetut kilometrit (0 lopettaa):  0
**Yhteensä 0 kilometriä**

标签: java

解决方案


看起来您有两个单独的循环,并且没有正确处理您收到的数字。您的第一个循环接收数字,并将它们与零进行比较,但不求和。一旦你到达你的第二个循环,luku已经为零,所以第二个循环永远不会运行并且你获得0作为输出(因为luku保存最后接收到的值的 ,是零)。

您可以使用一个循环执行此操作:

 int km = 0, luku = 0;

  do {
    System.out.println("Anna ajetut kilometrit (0 lopettaa): ");
    luku = lukija.nextInt();
    km = km + luku;
  } while (luku != 0);
  System.out.println("Yhteensä " + km + " kilometriä"); 

循环体提示用户输入(或零退出),将其添加到km(运行总数),只要输入不为零,循环体就会重复。最后,打印总值(来自 int 变量km)。


推荐阅读