首先我们先创建一个主方法,然后在主方法下编写实现代码
首先创建一个扫描器,来接收键盘输入数据,这里我们会用到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();
}
}