Các bác cho em hỏi tại sao lại so sánh trực tiếp được giữa kiểu int và kiểu char ạ. VD: for(int i=‘A’;i<=‘Z’;i++){…}
Kiểu dữ liệu char trong java
Khi so sánh hoặc tính toán, biến kiểu char được ép kiểu ngầm định thành int. Khi được gán cho biến char, int được ép kiểu ngầm định thành char
int a = 'a' + 1;
char b = 'a' + 1;
System.out.println(a);//98
System.out.println(b);//b
System.out.println('a' + 1);//98
System.out.println('a' + 'b');//195
5 Likes
JAVA nói riêng và các ngôn ngữ lập trình nói chung đa số đều có kiểu dữ liệu char. 1 giá trị char bản chất của nó là số thứ tự của ký tự đó trong 1 bảng mã (UTF-8, ASCII). Do đó nó được xem như là 1 số.
Ví dụ chữ cái ‘A’ trong bảng mã có số thứ tự là 65. Khi cộng cho 1 ta được số 66, chính là số thứ tự của chữ cái ‘B’ trong bảng mã
public static void main(String[] args) {
char a = 'A';
a++;
System.out.println(a + ""); // convert char to String
}
output : ‘B’
3 Likes