日期:2014-05-20  浏览次数:20742 次

循环 查找,判断问题
自己在练习这个题目时在那个输入学生名字来查找学生成绩并输出哪里一直搞不懂,一直发生查找不到或错误的现象,希望各位大神帮忙解决下,多谢先了。下面是代码:
/*
 * 输入不超过10个学生的java课成绩,并输出最高分者和最低分者的姓名和分数,可以接受学生输入姓名来查询成绩
 */
import java.util.*;
class Array{
String[] Name = new String[10];
double[] Score = new double[10];
Scanner sca = new Scanner(System.in);
//输入学生姓名和成绩
public void getGrade(){
System.out.println("请分别输入学生姓名和成绩:");
for(int i = 0;i <10;i++){
Name[i] = sca.next();
Score[i] = sca.nextDouble();
}
}
//求最高分和最低分
public void MaxAndMin(){
double Max = Score[0];
for(int j = 0; j < 10;j++){
if(Score[j] > Max)
Max = Score[j];
}
System.out.println("最高分是: " + Max);
double Min = Score[0];
for(int i = 0;i < 10;i++){
if(Score[i] < Min)
Min = Score[i];
}
System.out.println("最低分是:" + Min);
}
//查找某学生的成绩
public void Search(){
String name = null;
System.out.println("请输入要查找的姓名:");
name = sca.next();
int i;
for( i = 0; i < 10;i++){
if(name.equals(Name[i])){
System.out.println(Name[i] + "的成绩是: " + Score[i]);
}
else{
System.out.println("该学生不存在!");
}
}
}
}
public class ArrayTest {
public static void main(String[] args) {
Array array = new Array();
array.getGrade();
array.MaxAndMin();
array.Search();
}

}

------解决方案--------------------
	// 查找某学生的成绩
public void Search()
{
String name = null;
System.out.println("请输入要查找的姓名:");
name = sca.next();
int i;
for (i = 0; i < 10; i++)
{
if (name.equals(Name[i]))
{
System.out.println(Name[i] + "的成绩是: " + Score[i]);

break;
}
if(i == 9 && !name.equals(Name[i]))
{
System.out.println("该学生不存在!");
}
}

}



修改了一下你的代碼,看看合不合要求?