Java中用for循环有一句double avg = 0.0;为什么是0.0,而不是0?为什么要用double?

public static void main (String[ ] args) {
int score;
int sum = 0;
double avg = 0.0;
Scanner input = new Scanner (System.in);
System.out.print ("输入学生姓名:");
String name = input.next ( );
for(int = 0; i<5; i++) {
System.out.print("请输入5门功课中第"+( i+1 )+"门课的成绩:");
score = input.nextInt( );
sum = sum + score;
}
avg = sum/5;
System.out.println(name+"的平均分是:" + avg);
}
平均分为啥要用double类型的?
System.out.print("请输入5门功课中第"+( i+1 )+"门课的成绩:");
System.out.println(name+"的平均分是:" + avg);这两句为什么这么写?
String name = input.next ( );
score = input.nextInt( );这两句的意思是不是一样的?
【初学者以前是学办公自动化Excel的】【请详细讲解下,小女子感激不尽】

1.平均分为啥要用double类型的?
平均分当然会带有小数 既然有小数最好用double 虽然还有float 但是浮点数默认都是double类型 而且double类型的数值范围比float大很多 推荐使用double

2.System.out.print("请输入5门功课中第"+( i+1 )+"门课的成绩:");
System.out.println(name+"的平均分是:" + avg);这两句为什么这么写?
首先 System,out.println()语句是java中的命令行打印语句 第一句话放在一个for循环里 i从0到5 所以它的意思其实是这样的 第一次输出 “请输入5门功课中第”1门课的成绩
第二次输出 “请输入5门功课中第”2门课的成绩 以此类推

第二句输出语句 放在了for循环外面 所以它的意思是执行完for循环后 所有的课的成绩都被保存在了sum这个int类型的变量中 而double类型的变量avg=sum/5 相当于求了平均成绩 这条语句就是输出平均成绩 我假设学生姓名是张三 平均成绩是83 所以输出语句就可能是 张三的平均分是83分

3.String name = input.next ( );
score = input.nextInt( );这两句的意思是不是一样的?
这里用到了java中的从控制台输入数据的Scanner类
第一句话的意思是从控制台输入一个字符串
第二句话的意思是从控制台输入一个整数
此外 用Scanner类从控制台输入字符串 建议应该这样写:
Scanner input=new Scanner(System.in);
String name=input.nextLine();而不是String name=input.next();追问

太棒了!感激不尽!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-02-18
double是指avg的类型avg指的是平均成绩是有小数的,double可以表示小数,后面0.0是初始化,如果写成0就是int类型,要类型转换
相似回答