java - (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ä**
解决方案
看起来您有两个单独的循环,并且没有正确处理您收到的数字。您的第一个循环接收数字,并将它们与零进行比较,但不求和。一旦你到达你的第二个循环,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
)。
推荐阅读
- angular - Angular 5 - HttpClient 调用重新触发
- ubuntu - Ubuntu 16.04 为 Android 编译 VLC 失败
- file-upload - 如何在zend框架3中上传之前修改图像名称
- java - Java收银机程序
- sql - 在sql中获取日历周ID
- python - Django - 将 google recaptcha v2 添加到登录表单
- db2 - 将 csv 加载到 DB2 数据库
- logstash - Logstash 如果字段包含值
- regex - 通过开始和结束键盘记事本++正则表达式删除文本块
- ubuntu - 是否可以在同一个公钥中使用两个 gitrepository?