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