JAVA编程,求大神帮忙解答谢谢!
求大神帮我解答修改学生信息和指定学生信息应该怎么弄,用if还是whilefor没思路?importjava.util.Scanner;publicclassTest052...
求大神帮我解答修改学生信息和指定学生信息应该怎么弄,用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;
} 展开
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;
} 展开
1个回答
展开全部
根据你的代码,你是把学生信息保存在一个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);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询