路过人间65 2022-06-14 16:35 采纳率: 63.6%
浏览 28
已结题

请解读一下程序并给出详细回复

问题遇到的现象和发生背景

执行有空值不提示,还会执行,不知如何解决,
修改信息,修改不全,只会修改一个

问题相关代码,请勿粘贴截图

package student3;

public class Student3 {

private String sid;

// 学号
private String name;
// 姓名
private String age;
// 年龄
private String address;
// 地址
public Student3() {

}
public Student3(String sid,String name,String age,String address) {
    this.sid=sid;
    this.name=name;
    this.age=age;
    this.address=address;
}
public void setSid(String sid) {
    this.sid=sid;
}
public String getSid() {
    return sid;
}
public void setName(String name) {
    this.name=name;
}
public String getName() {
    return name;
}
public void setAge(String age) {
    this.age=age;
}
public String getAge() {
    return age;
}
public void setAddress(String address) {
    this.address=address;
}
public String getAddress() {
    return address;
}

}

package student3;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentManager {

public static void main(String[] args) {
        
    Scanner sc =new Scanner(System.in);
    ArrayList<Student3> array=new ArrayList<Student3>();
    while(true) {
    System.out.println("--------欢迎来到学生信息管理系统--------");
    System.out.println("1 添加学生信息");
    System.out.println("2 删除学生信息");
    System.out.println("3 修改学生信息");
    System.out.println("4 查看所有学生信息");
    System.out.println("5 退出");
    System.out.println("请输入你的选择:");
    
    int i=sc.nextInt();
    if(i==1) {
        addStudent(array);
    }else if(i==2) {
        deleteStudent(array);
    }else if(i==3) {
        updateStudent(array);
    }else if(i==4) {
        findAllStudent(array);
    }else if(i==5) {
        System.out.println("谢谢您的使用!");
        break;

// System.exit();
}else {
System.out.println("输入错误,请重新输入:");
}
}

}
public static void addStudent(ArrayList array) {
Scanner sc=new Scanner(System.in);
String sid;
while(true) {
System.out.println("请输入学生学号:");
sid=sc.nextLine();
if(isUsed(array,sid)==true) {
System.out.println("该学号已经存在,请重新输入:");
}else {
break;
}
}
System.out.println("请输入学生姓名:");
String name=sc.nextLine();
System.out.println("请输入学生年龄:");
String age=sc.nextLine();
System.out.println("请输入学生居住地:");
String address=sc.nextLine();
Student3 s=new Student3();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.add(s);
System.out.println("添加信息成功!");

}
public static void findAllStudent(ArrayList<Student3> array) {
    if(array.size()==0) {
        System.out.println("暂时没有内容,请先添加数据!");
        
        return;
    }
    System.out.println("学号\t姓名\t年龄\t居住地");
    for(int i=0;i<array.size();i++) {
        Student3 s=array.get(i);
        System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress());
    }
}
public static void deleteStudent(ArrayList<Student3> array) {
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入你要删除的学生学号:");
    String sid=sc.nextLine();
    int index=-1;
    for(int i=0;i<array.size();i++) {
        Student3 s=array.get(i);
        if(s.getSid().equals(sid)) {
            index=i;
            break;
        }
    }
    if(index==-1) {
        System.out.println("该学生信息不存在,请重新输入!");
    }else {
        array.remove(index);
        System.out.println("删除学生信息成功!");
    }

// System.out.println("删除学生信息成功!");

}
public static void updateStudent(ArrayList<Student3> array) {
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入要修改的学生学号:");
    String sid=sc.nextLine();
    for(int i=0;i<array.size();i++) {
        Student3 s=array.get(i);
        if(s.getSid().equals(sid)) {
            System.out.println("请输入学生新姓名:");
            String name=sc.nextLine();
            System.out.println("请输入学生新年龄:");
            String age=sc.nextLine();
            System.out.println("请输入学生新居住地:");
            String address=sc.nextLine();
            s.setName(name);
            s.setAge(age);
            s.setAddress(address);
            array.set(i, s);
            break;
        }
    }
System.out.println("修改成功!");
}
public static boolean isUsed(ArrayList<Student3> array,String sid) {
    boolean flag=false;
    for(int i=0;i<array.size();i++) {
        Student3 s=array.get(i);
        if(s.getSid().equals(sid)) {
            flag=true;
        }
    }
    return flag;
}

}

运行结果及报错内容

img

img

我的解答思路和尝试过的方法
我想要达到的结果

添加数据时,输入空值,返回提示,重新输入,继续执行,
修改数据每个都能成功执行,

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2022-06-14 16:41
    关注

    执行有空值,指的是哪一块业务。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 创建了问题 6月14日

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法