这次分为两部分,一种是广为流传的while方法,另一种阿巴阿巴乱写的for循环,希望为小哥哥小姐姐们提供一点点帮助,不说废话了正文开始
public class Damo {
public static void main(String[] args) {
**//第一种while**
//我们要输入多个数字,并求其平均数,每输入一个数字确认,通过输入非数字来结束输入并输出结果
//首先整一个Scanner来获取键盘的输入。当然,获取输入是System.in来做的
Scanner scanner = new Scanner(System.in);
//和 考虑到可能会有小数所以用到了double double呢他是双精度的数据类型、64 位、符合IEEE 754标准的浮点数;
double sum = 0;
//计算输入了多少个数字
int m = 0;
//通过循环判断是否还有输入,并在里面对每一对进行一次求和统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m +1;//m++
sum = sum + x;
System.out.println("你当前输入了第" + m + "个数据,然后当前结果为sum=" + sum);
}
System.out.println(m + "个数的和为" + sum);
System.out.println(m + "个数的平均值为" + (sum / m));
//每一次开启scanner一定要记得关闭哦,这是一个流~~,不关的话会一直流下去,还有要记住,这个流的开启和关闭最好在一个方法里。这样可读性会高一些
scanner.close();
}
**//第二种for**
Scanner scanner = new Scanner(System.in);
System.out.println("本次计算通过非数字结束并输出结果");
double s = 0;
//这里的两个;是正确的哦,因为我不想限制他的循环次数
//s是数的总和,我们也不需要再整次数了,因为循环了的i可以直接拿来用
for (int i = 1;; i++) {
System.out.println("本次计算已开始,您这是第"+i+"次输入");
System.out.println("请输入整数");
//这种if写法是默认为true的
if (scanner.hasNextDouble()){
//既然用到了Double,那我们读取数据当然也要用Double的,不要问为什么!而这个e是哪来的呢,我生的!。。。开玩笑,起了个名字而已,我一个七尺大汉,怎么可能生的出来
double e = scanner.nextDouble();
System.out.println("本次输入整数:"+e);
//每一次s+e都会把本次值的和给s,就可以获取总和了
s = s + e;
//s/i都不陌生吧,就是个除法
System.out.println("目前输入的和为:"+s+"平均数为:"+(s/i));
}else {
System.out.println("本次结束");
//for循环要用break跳出哦,这样才不会继续循环下去
break;
}
}
scanner.close();
}
}
while的结果
for循环结果
最后,这次感谢各位小哥哥小姐姐们的光临,有意见一定要提出来哦,想法也行,鞠躬,感恩。