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;
}
}
浙公网安备 33010602011771号