In ra phép cộng 2 biến trong Java bị lỗi?
import java.util.Scanner;
public class CNhanVienSanXuat
{
private static int luongCanBan = 100000;
private int soSanPham;
Scanner input = new Scanner(System.in);
public CNhanVienSanXuat() {}
public void Nhap()
{
System.out.print("Nhap so san pham lam duoc: ");
soSanPham = input.nextInt();
}
int luong = luongCanBan + soSanPham*5000;
public void Xuat()
{
System.out.println("Luong: " + luong + "VND");
}
}
Hàm main
import nhanVien.CNhanVienSanXuat;
public class Main
{
public static void main(String[] args)
{
CNhanVienSanXuat SX = new CNhanVienSanXuat();
SX.Nhap();
SX.Xuat();
}
}
Mình có class Nhân viên sản xuất để tính tiền lương cho nhân viên, nhưng hàm print
in ra chỉ in ra số tiền của luongCanBan
là 1000000, nhưng khi mình đưa phép tính cộng vào trong hàm print (System.out.println("Luong: " + luongCanBan + soSanPham*5000 + "VND");)
thì kết quả giống như là cộng 2 String lại với nhau vậy ạ.
Ví dụ mình nhập soSanPham
là 21 thì:
System.out.println("Luong: " + luongCanBan + soSanPham*5000 + "VND"); //100000105000VND
System.out.println("Luong: " + luong + "VND"); //100000VND
Các bạn giúp mình giải thích lỗi và cho mình hướng giải quyết với ạ cảm ơn mọi người
sửa thành
System.out.println("Luong: " +( luongCanBan + soSanPham*5000) + “VND”);
Bạn thử xem
Bạn nên đọc lại java cơ bản. Các phép
+
trong ‘printf
’ nó đã ép kiểu dữ liệu thành String ( cụ thể đây làluongCanBan
vàsoSanPham
từint
sangString
Muốn có kết quả như ý muốn thì bạn thêm dâu
()
vào nữaSystem.out.println("Luong: " + ( luongCanBan + soSanPham*5000) + "VND");