JAVA编程,求大神帮忙解答谢谢!

求大神帮我解答修改学生信息和指定学生信息应该怎么弄,用if 还是 while for 没思路?
import java.util.Scanner;
public class Test0520_1 {
public static void main(String[] args) {

//有个学生,名字张三,年龄20,性别男
Scanner input = new Scanner(System.in);
do {
try {
if(count==3){
isFinish=true;
System.out.println("3次错误自动退出");
return;
}
System.out.println("请输入选择项 ");
System.out.println("1.添加2.修改3.删除4.查询所有5.指定查询");
int num = input.nextInt();
switch (num) {
case 1:
System.out.println("1.添加学生");
for (int i = 0; i < names.length; i++) {
if(names[i]==null){
System.out.println("输入添加学生的名字");
names[i]=input.next();
System.out.println("输入添加学生的年龄");
ages[i]=input.nextInt();
System.out.println("输入添加学生的性别");
sexs[i]=input.next();
System.out.println("添加成功");
break;
}
}
break;
case 2:
System.out.println("2.修改学生信息");
break;
case 3:
System.out.println("3.删除学生");
System.out.println("请输入要删除学生的名字");
String name=input.next();
for (int i = 0; i < names.length; i++) {
if(names[i]!=null&&name.equals(names[i])){
names[i]=null;
ages[i]=0;
sexs[i]=null;
System.out.println("删除成功");
for (int j = i; j < names.length-1; j++) {
names[j]=names[j+1];
ages[j]=ages[j+1];
sexs[j]=sexs[j+1];
}
//把null移到最后一个
names[names.length-1]=null;
ages[names.length-1]=0;
sexs[names.length-1]=null;
break;
}
}
break;
case 4:
System.out.println("4.查询所有");
System.out.println("姓名\t年龄\t性别");
for (int i = 0; i < names.length; i++) {
if(names[i]==null){
break;
}
System.out.println(names[i]+"\t"+ages[i]+"\t"+sexs[i]);
}
break;
default:
System.out.println("超范围,请选择1-3之间");
count++;
continue;
}

根据你的代码,你是把学生信息保存在一个List泛型中,而不是数据中,那么你要修改学生信息的话,就做一个循环,用一个唯一标识,学号或者名字都行,循环建议foreach比较好,不过不是泛型的话,用for吧,方便些。追问

然后怎么加for循环?加到哪个下面,这个我不是很懂?

追答

class Student{
public String name;
public int age;
public String sex;
List list = new ArrayList();
Scanner scan = new Scanner(System.in);
//修改
public void changeMessage(Student stu){
System.out.println("请输入学生姓名:");
stu.name = scan.nextLine();
for(int i=0;i<list.size();i++){
Student s = (Student)list.get(i);
if (s.equals(stu.name))
{
System.out.println("请输入学生年龄:");
s.age = scan.nextInt();
System.out.println("请输入学生性别:");
s.sex = scan.nextLine();
}else {
System.out.println("你修改的学生不存在!");
}
}
}
//添加
public void addStudent(Student stu){
System.out.println("请输入学生姓名:");
stu.name = scan.nextLine();
System.out.println("请输入学生年龄:");
stu.age = scan.nextInt();
System.out.println("请输入学生性别:");
stu.sex = scan.nextLine();
list.add(stu);
}
}

温馨提示:内容为网友见解,仅供参考
无其他回答

JAVA编程问题求大神帮忙看看解答谢谢!
你的问题:1 、定义的数组类型有问题 讲解:字符数组用该用char 或者String 你这个由于是中文字符串,所以用String char 和String 定义是需要引号引起来,2 、java中,结束一段表达式的时候要用英文的分号结束,你定义数组的时候没有结束符 ...

java编程菜鸟请教代码意思。。表示看不懂
1、这个是利用线程访问http网页。2、Runnable是线程的接口,必须实现这接口里面的run方法。3、构造方法是传htttp地址的,这个就不用说了吧。4、URL 这个类是设置url地址的。5、HttpURLConnection conn 是访问http地址,openConnection方法开始访问。6、InputStream输入流,try是异常处理模块,finally是用于关...

Java编程运行时出现非法字符怎么破?求大神指点
首先,非法字符错误通常是由于代码中包含了不被Java语言所接受的特殊字符或符号导致的。解决这个问题的方法主要有以下几点:更系统全面的学习资料,点击查看1. 检查代码:仔细检查您的Java代码,特别是可能出现问题的地方,例如字符串、变量名、注释等。确保代码中没有使用到特殊字符,如中文全角字符、特殊符...

用Java编程序!十万火急!谢了
先回答:4:public class Plus { \/ param args \/ public static void main(String[] args) { for(int i=1;i<=9;i++){ \/\/ for(int j=1;j<=i;j++){ System.out.print(j+"*"+j+"="+i*j);System.out.print(" ");if(j==i){ System.out.print("\\n");} } } } } ...

java代码,不知道哪里错了,希望大神帮忙看看,谢谢!
额,我不是大神,但是也会一点。这是正确代码,你的错误是main方法写到类外面了 class Person{ String name;int age;void tell(String name,int age){ this.name = name ;this.age = age ;System.out.println("我是:" + this.name + ",年龄:" + this.age + "岁");} public static ...

<java>请各路大神帮忙分析一下我的理解对不对
1.1:实例变量:就是我们正常定义的变量,比如int a; a就是实例变量 1.2:静态变量:静态变量定义前要加上Static 比如static int a;这个a就是静态变量,当在变量定义前加上static的时候就代表着该变量在使用的时候有一处改变则各个用到这个变量的地方,该变量都发生改变,就是所谓的一处改变处处...

java问题,求各路高手齐来踊跃解答。。。我想知道正确答案啊
答案:JavaSE\\JavaME\\JavaEE 2、在Java中如何定义变量名?变量的作用是什么?答案:path:\\Java路径 3、定义变量分哪两个步骤?是否必须在Java程序的前面声明变量?答案:自己看书去,这是书上原话,字太多了,所以我就不打了 4、以下程序段的输出结果为___。for(i=0;i<5;i++){for(j=0;j<5;j...

java编程问题?
1. 这段代码是实现用户登录功能的。根据用户的登录名称,会判断用户属于〔南家〕还是〔客户〕,进入对应的登录流程。2. SC是一个Scanner对象,用于获取用户的输入。代码中使用大写的SC,是为了表明这是一个类(Class)的对象,而不是具体的变量名。3. 在Java中,一般推荐使用小写字母开始作为变量名,大写字母...

Java编程题求助,大佬救救孩子?
详情请查看视频回答

有没java大神过来指导一下!谢谢!!!
除去你第二个if条件的所有情况都是else,这个else 只针对于第二个if,而不是针对于两个if。通俗的讲你的逻辑是这样的:若平局则输出平局,若你赢了则输出你赢了,若你没赢则输出你输了。而逻辑上这是错误的,因为你没赢包括了你平局的可能。不知道这么说您懂了么,没懂的话可以追问我。

相似回答