遍历数组按学号找人,若找到则输出信息,否则输出"查无此人"
- //建立一个类类型的数组,并向这个数组内添加学生信息,包括姓名和年龄等
 - **********************学生类**************************
 - package practise03_1;
 - public class Student {
 - private String name;
 - private int age;
 - public String getName() {
 - return name;
 - }
 - public void setName(String name) {
 - this.name = name;
 - }
 - public int getAge() {
 - return age;
 - }
 - public void setAge(int age) {
 - this.age = age;
 - }
 - }
 - **************************功能类************************
 - package practise03_1;
 - import java.util.Scanner;
 - public class BookDAO {
 - Student[] a=new Student[2];
 - Scanner sc=new Scanner(System.in);
 - //添加学生信息
 - public int addStudent(Student stu){
 - for(int i=0;i<a.length;i++){
 - System.out.println("请输入第"+(i+1)+"个学生的名字、年龄:");
 - a[i]=new Student();//实例化一个对象,并赋值给a[i]
 - String n =sc.next();
 - a[i].setName(n);
 - //System.out.println("请输入第"+(i+1)+"个学生的年龄:");
 - int age = sc.nextInt();
 - a[i].setAge(age);
 - }
 - for(int i=0;i<a.length;i++){
 - System.out.println("第"+(i+1)+"个学生信息为:"+a[i].getName()+" "+a[i].getAge()+"岁");
 - }
 - return 0;
 - }
 - //根据名字查找
 - public Student findName(String name){
 - int k=0;//定义一个标记
 - System.out.println("请输入要查询的学生的姓名:");
 - String b=sc.next();
 - for(int i=0;i<a.length;i++){
 - if(a[i].getName().equals(b)){
 - System.out.println("该学生的年龄是:"+a[i].getAge()+"岁");
 - k=1; //此处做一个标记,记录循环的执行情况
 - break;
 - }
 - // else{
 - // System.out.println("查无此人");
 - // // break; //这儿出问题,如果第一次没查到,直接就会break,跳出循环了,后面的就查不到了
 - // } //那么问题来了,循环内部不能判断值不一致,真查不到的时候,该如何实现输出“查无此人”呢?
 - }
 - //解决办法是转嫁危机,把值传出去,既然内部不能判断值不一致,至少可以判断值一致的情况,在判断值一致时顺便做个记号,一致时记号改变
 - //然后在循环外部判断这个记号,如果记号不变,说明整个循环过程都没有找到值一致的情况,这时候就可以在循环外部输出“查无此人”了
 - if(k!=1){ //利用标记情况,在循环外部做判断
 - System.out.println("查无此人");
 - }
 - return null;
 - }
 - }
 - ****************************主类****************************
 - package practise03_1;
 - public class Test3_1 {
 - public static void main(String[] args) {
 - BookDAO b=new BookDAO();
 - Student stu=new Student();
 - b.addStudent(stu);
 - b.findName("xiaomao");
 - }
 - }
 
    好记性不如烂键盘
                    
                
                
            
        
浙公网安备 33010602011771号