Trong đoạn mã sau kiểu dữ liệu của biến result có thể là những kiểu nào?
byte b = 11;
short s = 13;
result = b * ++s;
byte b = 11;
short s = 13;
result = b * ++s;
short s = 13;
result = b * ++s;
Trả lời:
Đáp án đúng: D
Trong đoạn mã, `b` là kiểu byte (1 byte) và `s` là kiểu short (2 bytes). Biểu thức `b * ++s` sẽ thực hiện phép nhân giữa một giá trị byte và một giá trị short (sau khi s tăng lên 1).
Trong Java, khi thực hiện các phép toán số học với các kiểu dữ liệu nhỏ hơn int (như byte, short, char), chúng sẽ được tự động nâng cấp lên kiểu int trước khi thực hiện phép toán. Do đó, biểu thức `b * ++s` sẽ được tính toán như là một phép nhân giữa hai số nguyên (int).
Kết quả của phép nhân này sẽ là một số nguyên. Vì vậy, kiểu dữ liệu của `result` phải đủ lớn để chứa một số nguyên. Các kiểu dữ liệu có thể sử dụng là `int`, `long`, `float`, hoặc `double`.
Vậy, đáp án đúng là: D. int, long, float, double