01/10/2018, 00:12

Số nguyên trong java

Mn giúp em với.
Em nhập vào biến nãmlà 1 số nguyên nhưng khi lấy ra giá trị thì lại là 0.

        Scanner in = new Scanner(System.in);
        int ma, namsx;
        String ten, nhasx;
        double gia;
        System.out.println("Nhap ma sp: ");
        ma = Integer.parseInt(in.nextLine());
        this.masp = ma;
        System.out.println("Nhap ten sp: ");
        ten = in.nextLine();
        this.tensp = ten;
        System.out.println("Nhap nha sx: ");
        nhasx = in.nextLine();
        this.nhasx = nhasx;
        **System.out.println("Nhap nam sx: ");**
**        namsx = in.nextLine();**
        System.out.println("Nhap gia ban: ");
        gia = in.nextDouble();
        this.gia = gia;
    }
Sáng Béo viết 02:23 ngày 01/10/2018

Mấy cái int sao bạn không dùng nextInt() luôn ?

... viết 02:28 ngày 01/10/2018

Dòng đầu phải dung Integer.parse() để dòng sau t nhập 1 xâu.

Tynk Huynk viết 02:18 ngày 01/10/2018

Kiểu trả về của phương thức readLine() trong Scanner là String, trong khi namsx của bạn lại kiểu int nên sẽ dẫn đến lỗi incompatible type. Bạn nên dùng Integer.parse() đi

... viết 02:13 ngày 01/10/2018

mình dùng cả hai rồi vẫn trả về số 0

Tynk Huynk viết 02:21 ngày 01/10/2018

Lạ thật ? Mình test thây chựa được mà

... viết 02:24 ngày 01/10/2018

thì đó. chưa được nên mình mới hỏi mn đấy.

private int masp;
    private String tensp;
    private String nhasx;
    private int namsx;
    private double gia;

    public Product() {
    }

    public Product(int masp, String tensp, String nhasx, int namsx, double gia) {
        this.masp = masp;
        this.tensp = tensp;
        this.nhasx = nhasx;
        this.namsx = namsx;
        this.gia = gia;
    }

    public void setMasp(int masp) {
        this.masp = masp;
    }

    public void setTensp(String tensp) {
        this.tensp = tensp;
    }

    public void setNhasx(String nhasx) {
        this.nhasx = nhasx;
    }

    public void setNamsx(int namsx) {
        this.namsx = namsx;
    }

    public void setGia(double gia) {
        this.gia = gia;
    }

    public int getMasp() {
        return masp;
    }

    public String getTensp() {
        return tensp;
    }

    public String getNhasx() {
        return nhasx;
    }

    public int getNamsx() {
        return namsx;
    }

    public double getGia() {
        return gia;
    }

    public void nhap(Scanner in) {
        setMasp(Integer.parseInt(in.next()));
        setTensp(in.nextLine());
        setNhasx(in.nextLine());
        setNamsx(in.nextInt());
        setGia(in.nextDouble());
    }
    public void nhap() {
        Scanner in = new Scanner(System.in);
        int ma, namsx;
        String ten, nhasx;
        double gia;
        System.out.println("Nhap ma sp: ");
        ma = Integer.parseInt(in.nextLine());
        this.masp = ma;
        System.out.println("Nhap ten sp: ");
        ten = in.nextLine();
        this.tensp = ten;
        System.out.println("Nhap nha sx: ");
        nhasx = in.nextLine();
        this.nhasx = nhasx;
        System.out.println("Nhap nam sx: ");
        namsx = Integer.parseInt(in.nextLine());
        System.out.println("Nhap gia ban: ");
        gia = in.nextDouble();
        this.gia = gia;
    }

    @Override
    public String toString() {
        return this.masp + "    " + this.tensp + "    " + this.nhasx + "  " + this.namsx + "  " + this.gia;
    }
}

Nhờ c copy code này vào ròi nhập và lấy ra giá trị của namsx giúp mình. Vậy mới biết sai thế nào dk…

Bài liên quan
0