《学好JAVA》 2.0 2022-01-17 19:12 采纳率: 50%
浏览 35
已结题

关于一些数据类型的有关问题(语言-java)

各位,我是一名java初学者,在练习写一个学生管理系统时,在定义学生类时,对于学生的年龄我给的是int类型,其余的学号,姓名,居住地给的都是String类型,代码如下:


package 学生管理系统;

public class student {
    //姓名
    private String name;
    //年龄
    private int age;
    //学号
    private String number;
    //地址
    private String address;
    
    //构造方法
    public student() {}
    public student (String name,int age,String address,String number) {
        this.name = name;
        this.age = age;
        this.number = number;
        this.address = address;
    }
    //成员方法
    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;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    //show方法
    public void show() {
    }
}

然后我写了一个添加学生信息的方法(该系统的其它一些功能未完成),代码如下:


package 学生管理系统;

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

public class studentManager {

    public static void main(String[] args) {
        ArrayList<student> array = new ArrayList<student>();
       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("请输入你的指令:");
       Scanner sc = new Scanner(System.in);
       String line = sc.nextLine();
      
           switch(line) {
           case "1": 
              // System.out.println("添加学生");
               addStudent(array);
               break;
           case "2": 
               System.out.println("删除学生");
               break;
           case "3": 
               System.out.println("修改学生");
               break;
           case "4": 
               System.out.println("查看所有学生");
               break;
           case "5": 
               System.out.println("感谢使用");
               System.exit(0); // JVM退出
           }
       }
    }
    public static void addStudent(ArrayList<student> array) {
        
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请输入学生学号:");
        String number = sc.nextLine();
        System.out.println("请输入学生姓名:");
        String name = sc.nextLine();
        System.out.println("请输入学生年龄:");
        int age = sc.nextInt();
        System.out.println("请输入学生居住地:");
        String address = sc.nextLine();
        
        student st = new student();
        st.setNumber(number);
        st.setName(name);
        st.setAge(age);
        st.setAddress(address);
        
        array.add(st);
        System.out.println("添加成功!");
    }
}

运行之后控制台给的结果是:

-------欢迎来到学生管理系统-------
1 添加学生
2 删除学生
3 修改学生
4 查看所有学生
5 退出
请输入你的指令:
1
请输入学生学号:
123456
请输入学生姓名:
张三
请输入学生年龄:
18
请输入学生居住地:
添加成功!
-------欢迎来到学生管理系统-------
1 添加学生
2 删除学生
3 修改学生
4 查看所有学生
5 退出
请输入你的指令:


对于这个问题我想知道为什么当输入年龄后输入完年龄之后就直接跳过输入居住地了,然后我把年龄的int类型又改为了String系统又正常运行,求解,好迷茫啊

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2022-01-17 19:19
    关注
    sc.nextLine()
    都换成
    sc.next()
    
    
    System.out.println("请输入学生学号:");
            String number = sc.next();
            System.out.println("请输入学生姓名:");
            String name = sc.next();
            System.out.println("请输入学生年龄:");
            int age = sc.nextInt();
            System.out.println("请输入学生居住地:");
            String address = sc.next();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 创建了问题 1月17日

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘