问题遇到的现象和发生背景
package work2;
import java.util.Scanner;
public class pupil {
private String number;
private String name;
private String gender;
private int age;
private int classnumber;
public pupil() {
}
public pupil(String number, String name, String gender, int age, int classnumber) {
this.number = number;
this.name = name;
this.gender = gender;
this.age = age;
this.classnumber = classnumber;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getClassnumber() {
return classnumber;
}
public void setClassnumber(int classnumber) {
this.classnumber = classnumber;
}
public void addpupil(pupil pupils[]){
Scanner scanner=new Scanner(System.in);
for (int i = 0; i < pupils.length; i++) {
if (pupils[i]==null){
pupils[i]=new pupil();
}
System.out.println("请输入你要添加得学生得学号");
pupils[i].setNumber(scanner.next());
System.out.println("请输入你要添加得学生得姓名");
pupils[i].setName(scanner.next());
System.out.println("请输入你要添加得学生得性别");
pupils[i].setGender(scanner.next());
System.out.println("请输入你要添加得学生得年龄");
pupils[i].setAge(scanner.nextInt());
System.out.println("请输入你要添加得学生得班级号");
pupils[i].setClassnumber(scanner.nextInt());
break;
}
}
public void delete(pupil pupils[]){
System.out.println("请输入你要删除的学生学号");
Scanner scanner=new Scanner(System.in);
for (int i = 0; i < pupils.length; i++) {
if(pupils[i].getNumber().equals(scanner.next())){
pupils[i]=null;
break;
}
else {
System.out.println("该学生不存在");
break;
}
}
}
public void addage(pupil pupils[]){
for (int i = 0; i < pupils.length; i++) {
pupils[i].setAge(pupils[i].getAge()+1);
}
}
public void changeclss(pupil pupils[]){
Scanner scanner=new Scanner(System.in);
System.out.println("请输入你要转班的学生学号");
int a= scanner.nextInt();
for (int i = 0; i < pupils.length; i++) {
if (pupils[i].getNumber().equals(a)){
System.out.println("请输入你要转的班级号");
int b= scanner.nextInt();
pupils[i].setClassnumber(b);
break;
}
else {
System.out.println("该学生不存在");
break;
}
}
}
public void printf(pupil pupils[]){
for (int i = 0; i < pupils.length; i++) {
if (pupils[i]!=null){
System.out.print("学号:"+pupils[i].getNumber());
System.out.print("\t姓名:"+pupils[i].getName());
System.out.print("\t性别:"+pupils[i].getGender());
System.out.print("\t年龄:"+pupils[i].getAge());
System.out.print("\t班级号:"+pupils[i].getClassnumber());
}
}
}
@Override
public String toString() {
return "pupil{" +
"number=" + number +
", name='" + name + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
", classnumber=" + classnumber +
'}';
}
}
这下面是main函数
pupil[] ps=new pupil[5];
ps[0]=new pupil("001","小明","男",20,1);
ps[1]=new pupil("002","小红","女",19,1);
ps[2]=new pupil("003","小绿","男",18,2);
ps[3]=new pupil("004","小紫","女",17,2);
ps[4]=new pupil("005","小白","女",16,3);
pupil pp =new pupil();
pp.printf(ps);//先全部输出来
while (true){
System.out.println("1.添加学生\n2.删除学生\n3.学生年龄增加一岁\n4.查询信息\n");
int a= sc.nextInt();
switch (a){
case 1:pp.addpupil(ps);break;
case 2:pp.delete(ps);break;
case 3:pp.addage(ps);break;
case 4:pp.printf(ps);break;
default:
System.out.println("输入有误,请重新输入");break;
}
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
- main函数里没有Scanner sc,我不知道你是不是忘记复制过来了
- for 循环里为什么if-else全都break了呢?这样for循环的意义何在?