某中学有若干学生(学生对象放在一个List中),每个学生有一个姓名属性、班级名称 属性(String)和考试成绩属性(int),某次考试结束后,每个学生都获得了
package com.test7;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Student
{
private static final Student[][] Student = null;
private String name;
private String classname;
private int score;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score =score;
}
public Student(String name,int score,String classname)
{
this.name=name;
this.score=score;
this.classname=classname;
}
public String toString()
{
return "姓名:"+this.name+",分数为:"+this.score+",班级名:"+this.classname;
}
public static void main(String[] args)
{
int []score=new int[3];
String []s=new String[3];
String []c=new String[3];
List<Student> list=new ArrayList<Student>();
for(int i=0;i<3;i++)
{
System.out.println("请输入学生的名字:");
Scanner sc=new Scanner(System.in);
s=sc.nextLine();
System.out.println("请输入学生的成绩");
score=(int) sc.nextInt();
System.out.println("请输入学生的班级");
c=sc.next();
Student student= new Student(s,score,c);
//每一次循环之后Student student都会创建一个新的对象;
//不需要在建立引用型bing数组
list.add(student);
//将student对象转换为字符串添加list集合中;
}
//System.out.println(list.size());
Student m[]=list.toArray(new Student[0]);
for(Object n:list)
{
System.out.println(n);
}
int
sum=0,count=1;
//sum设定为班级相同的分数之和;count设定为班级相同的学生数量
String n[]=new String[m.length];
for(int i=0;i<m.length-1;i++)
{
for(int j=1;j<m.length;j++)
{
if(m.classname==m[j].classname)
{
sum=m.score+m[j].score;//m不叠加score的值???
count=count+1;//cout自增后的数字不对????
n=m.classname;
break;
}
}
}
for(int i=0;i<n.length;i++)
{
if(n==null)
continue;
System.out.println(n+"班级的总分是"+sum);
System.out.println(n+"班级的平均分是"+sum/count);
}
}
}
为什么我最后sum的值不是所有班级相同的学生的分数之和??好像只是部分的分数之和??还有为什么count不是所有班级相同的学生数量