(Java)的总和

时间:2018-08-28 20:31:14

标签: java

所以我想对从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ä**

4 个答案:

答案 0 :(得分:1)

您似乎有两个单独的循环,并且不能正确处理收到的电话号码。您的第一个循环接收数字,并将其与零进行比较,但不将其求和。到达第二个循环后,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)。

答案 1 :(得分:0)

您正在更改luku的值,但从未将它们加在一起,所以我创建了一个名为max

的新变量。
public static void main(String[] args) {
        Scanner lukija = new Scanner(System.in);
        int km= 0, luku= 0, max = 0 ; // added max
    while (km < 10) {
    System.out.print("Anna ajetut kilometrit (0 lopettaa): ");
      luku = lukija.nextInt();

max += luku; // change

 km++;
 if (luku == 0) {
     break;
 }

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

    }
}

答案 2 :(得分:0)

在最后一行的print语句中,您正在打印luku变量,该变量在第一个while循环中初始化为0。 要打印总和,请打印km变量而不是luku。

答案 3 :(得分:0)

存在印刷错误(打印km而不是luku)。