各位老师各位师兄能不能帮我解释一下下面这段代码的意思,是每一段代码的意思。我是初学者所以看不懂,希望老师们能帮一下我
import java.util.*;
//创建一个类名称为Example2_4
public class Example2_4
{
public static void main(String args[])
{
Scanner reader=new Scanner(System.in);
double a=0;
int b=0;
while(reader.hasNextDouble())
{
double c=reader.nextDouble();
b=b+1;
a=a+c;
}
System.out.printf("%d 个数的和为%f\n",b,a);
System.out.printf("%d 个数的平均值是%f\n",b,a/b);
}
}
------解决方案--------------------
- Java code
//导入了java自带的util【工具包】import java.util.*;//创建一个类名称为Example2_4public class Example2_4{//每个程序都有个入口、这段话就是整个程序的入口、//public 公开 static 静态 void 默认返回类型 main主程序//String 字符串类型 args[] 一维数组//连起来就是程序刚启动的时候被优先生成出来了、//还是死记这段程序入口代码吧public static void main(String args[]){//从系统输入获取输入的字符串Scanner reader=new Scanner(System.in);//声明一个双精度类型的 a 赋初始值为0double a=0;//声明一个整形变量b 赋初始值为0int b=0;//while是个循环 ()里面是条件//当reader(指的是从系统输入流中获取的字符串中有double类型的数据)while(reader.hasNextDouble()){//新创建一个局部双精度的变量c 赋初始值从nextDouble()中获取【是下一个双精度么?】double c=reader.nextDouble();//b+1的值赋给了b 【整形 + 整形 最后变整形、没有涉及到强制转换】b=b+1;【双精度+双精度 最后变双精度 没有涉及强制转换】a=a+c;}//System.out.printf();【是系统输出流】// %d 是按整形类型输出【其实是输出的是b值】 %f 是按浮点数类型输出【输出的是a的值】 System.out.printf("%d 个数的和为%f\n",b,a);// %d 是按整形类型输出【其实是输出的是b值】 %f 是按浮点数类型输出【输出的是a除以b的值,双精度】 System.out.printf("%d 个数的平均值是%f\n",b,a/b);}}