首先我们先创建一个主方法,然后在主方法下编写实现代码
首先创建一个扫描器,来接收键盘输入数据,这里我们会用到java里的Scanner这个工具包
然后输入一下提醒用户输入数字
public static void main(String[] args) { //首先创建一个扫描器,来接收键盘输入数据 Scanner scanner = new Scanner(System.in); System.out.println("请输入一个数字:"); }
定义三个变量用来统计结果,然后利用while循环语句来实现,如果输入的是数字则判断为真则执行循环体里的语句,a保存接收键盘输入的值,x自增,sum表示求和,avg表示平均数;如果输入的不为数字则判断为假不执行循环体直接跳出结束程序。
while (scanner.hasNextDouble()){ //判断键盘输入是否还有下一个Double数据 double a=scanner.nextDouble(); //定义a来接收键盘输入的值 x++; sum+=a; avg=sum/x; System.out.println("您输入了第"+x+"个数字,当前求和输出结果为:"+sum); System.out.println("您输入了第"+x+"个数字,当前平均数输出结果为:"+avg); System.out.println("您输入的数据格式正确,请继续输入:"); }
运行结果:
源码如下:
import java.util.Scanner; public class ScannerDemo1 { public static void main(String[] args) { //首先创建一个扫描器,来接收键盘输入数据 Scanner scanner = new Scanner(System.in); System.out.println("请输入一个数字:"); double sum=0; double avg=0; int x=0; while (scanner.hasNextDouble()){ //判断键盘输入是否还有下一个Double数据 double a=scanner.nextDouble(); //定义a来接收键盘输入的值 x++; sum+=a; avg=sum/x; System.out.println("您输入了第"+x+"个数字,当前求和输出结果为:"+sum); System.out.println("您输入了第"+x+"个数字,当前平均数输出结果为:"+avg); System.out.println("您输入的数据格式正确,请继续输入:"); } System.out.println("您输入的不是数字,结束计算,求和输出结果为:"+sum); System.out.println("您输入的不是数字,结束计算,平均数输出结果为:"+avg); scanner.close(); } }
注意:有关于输入输出流的一定要记得用完之后关闭,不然会占用资源会导致电脑变得很慢
利用for循环实现和while循环一个道理,只不过用来不同的循环语句
运行结果:
源码如下:
import java.util.Scanner; public class ScannerDemo2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请您输入一个数字:"); double sum=0; double avg=0; for (int x=1;scanner.hasNextDouble();x++){ double a = scanner.nextDouble(); sum+=a; avg=sum/x; System.out.println("您输入了第"+x+"个数字,当前求和输出结果为:"+sum); System.out.println("您输入了第"+x+"个数字,当前平均数输出结果为:"+avg); System.out.println("您输入的数据格式正确,请继续输入:"); } System.out.println("您输入的不是数字,结束计算,求和输出结果为:"+sum); System.out.println("您输入的不是数字,结束计算,平均数输出结果为:"+avg); scanner.close(); } }