94 删除已存在学号 给存在的学生加一岁
对象
package com.fqs.demo003; import java.util.Scanner; public class Student { //学生的属性 private int id; private String name; private int age; public Student() { } public Student(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } 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 com.fqs.demo003; import sun.font.FontRunIterator; import java.util.Scanner; public class StudentTest { public static void main(String[] args) { Student[]students=new Student[8]; int len=students.length; students[0]=new Student(1,"stu1",5); for (int i = 1; i <len ; i++) { students[i]=new Student();//初始化每个students[] } //键盘输入 Scanner sc=new Scanner(System.in); //判断添加数组 是否还有位置 //id为空 说明还有位置 //1.遍历学生信息 getInfo(students); int count=0;//空了几个位置 for (int i = 0; i < len; i++) { int id=students[i].getId(); if(id==0){ count++; //第一步:有空位置才可以添加 //键盘输入id System.out.println("第"+(i+1)+"次循环有空位置,请输入学生id"); id=sc.nextInt(); boolean id_is_ok=false;//id是否存在 while (true){//如果id存在再次提示输入,不存在时跳出循环 if(getIs(students,id)==true){ System.out.println("id已存在"); System.out.println("请输入学生id"); id=sc.nextInt(); }else { //id不存在 System.out.println("i:"+i); students[1].setId(id); break; } } System.out.println("请输入学生姓名"); String name=sc.next(); students[1].setName(name); System.out.println("请输入学生年龄"); int age=sc.nextInt(); students[1].setAge(age); } } if(count==0){ //没有空位置 System.out.println("没有空位置了,不再添加"); } //传入的id 做判断 //1.遍历学生信息 getInfo(students); //第二步:根据id删除学生,如果存在则删除;不存在,提示删除失败 //删除学生的id是 System.out.println("请输入删除学生的id"); int id=sc.nextInt(); if(getIs(students,id)){ //找到删除id数组 的下标 int indexx=getIndex(students,id); students[indexx]=new Student(); System.out.println("学号"+id+"的学生已删除"); }else{ System.out.println("学号"+id+"的学生不存在"); } //4.遍历学生信息 getInfo(students); //第三步 给id=1的学生年龄+1,如果id=1的学生存在 id=1; System.out.println("判断学号"+id+"的学生存在吗"); if(getIs(students,id)){ students[id].setAge(students[id].getAge()+1); System.out.println(id+"学号的年龄已加1"); }else{ System.out.println("学号"+id+"的学生不存在"); } //4.遍历学生信息 getInfo(students); }//主方法 public static void getInfo(Student[]students) { //1.遍历输出全部的学生信息 for (int i = 0; i <students.length; i++) { System.out.println(students[i].getId()+students[i].getName()+students[i].getAge()); } }//结束打印信息 //2.判断id为2是否存在 public static boolean getIs(Student[]students,int id) { boolean isFindd=false; int index;//相等的下标 for (int i = 0; i < students.length; i++) { //判断是否存在 if(id==students[i].getId()){ //存在 isFindd=true; index=i; break; }else{ //不存在 isFindd=false; } } return isFindd; }//结束 //3.判断id所在的下标 public static int getIndex(Student[]students,int id) { int index=0;//相等的下标 for (int i = 0; i < students.length; i++) { //判断是否存在 if(id==students[i].getId()){ //存在 index=i; break; } } return index; }//结束 }
方法
package com.fqs.demo003; import java.util.Scanner; public class StudentTest { public static void main(String[] args) { Student[]students=new Student[2]; students[0]=new Student(0,"stu1",5); students[1]=new Student(); //传入的id 做判断 boolean isFind=false; //键盘输入 Scanner sc=new Scanner(System.in); //判断是否存在 while(true){ System.out.println("请输入学生id"); int id=sc.nextInt(); if(students[0].getId()==id){ //已存在 isFind=true; System.out.println("已存在"); }else{ //不存在 students[1].setId(id); break; } } System.out.println("请输入学生姓名"); String name=sc.next(); students[1].setName(name); System.out.println("请输入学生年龄"); int age=sc.nextInt(); students[1].setAge(age); //1.遍历学生信息 getInfo(students); //2.根据id删除学生,如果存在则删除;不存在,提示删除失败 //删除学生的id是 System.out.println("请输入删除学生的id"); int id=sc.nextInt(); if(getIs(students,id)){ students[id]=new Student(); System.out.println("学号"+id+"的学生已删除"); }else{ System.out.println("学号"+id+"的学生不存在"); } //4.遍历学生信息 getInfo(students); //5.给id=1的学生年龄+1,如果id=1的学生存在 id=1; System.out.println("判断学号"+id+"的学生存在吗"); if(getIs(students,id)){ students[id].setAge(students[id].getAge()+1); System.out.println(id+"学号的年龄已加1"); }else{ System.out.println("学号"+id+"的学生不存在"); } //4.遍历学生信息 getInfo(students); }//主方法 public static void getInfo(Student[]students) { //1.遍历输出全部的学生信息 for (int i = 0; i <students.length; i++) { System.out.println(students[i].getId()+students[i].getName()+students[i].getAge()); } }//结束打印信息 //判断id为2是否存在 public static boolean getIs(Student[]students,int id) { boolean isFindd=false; for (int i = 0; i < students.length; i++) { //判断是否存在 if(id==students[i].getId()){ //存在 isFindd=true; break; }else{ //不存在 isFindd=false; } } return isFindd; } }