Bây giờ chúng ta đã biết biến và toán tử. Tiếp theo sẽ là biểu
thức, câu lệnh và khối lệnh là gì. Các toán tử có thể được sử dụng để xây dựng
nên các biểu thucwcs, ở đó sẽ tính toán giá trị, biểu thức là các thành phần
lõi của câu lệnh, câu lệnh có thể gộp trong các khối lệnh.
Biểu thức (Expressions)
Một biểu thức là một cấu t rúc được tạo ra từ các biến, các
toán tử, và các lời gọi phương thức, chúng có thể được khởi dựng theo các cú
pháp của ngôn ngữ lập trình, tính toán thành một giá trị đơn. Bạn có thể đã
nhìn thấy các ví dụ về biểu thức được minh họa trong ví dụ sau:
int cadence = 0;
anArray[0] = 100;
System.out.println("Element 1 at index 0: " + anArray[0]);
int result = 1 + 2; // result is now 3
if (value1 == value2)
System.out.println("value1 == value2");
Kiểu giá trị được trả về trong biểu thức phụ thuộc các thành
phần sử dụng trong biểu thức. Biểu thức cadence = 0 trả về một
kết quả kiểu int bởi vì biểu thức gán một giá trị cùng kiểu bên trái
toán hạng; trong trường hợp này, cadence là một số kiểu int.
Cũng có thể thấy các biểu thức khác, một biểu thức có thể trả về kiều giá trị
khác, có thể là boolean hoặc String.
Trong ngôn ngữ lập trình Java cho phép bạn tạo một biểu thức
hợp nhất từ các biểu thức nhỏ hơn kểu dữ liệu yêu cầu từng phần trong biểu thức
phải khớp với các kiểu dữ liệu khác. Ví dụ một biểu thức hợp nhất:
1 * 2 * 3
Trong ví dụ này, cài đặt một biểu thức mà thứ tự tính toán là không quan trọng bởi vì kết quả là phép nhân thì độc lập với thứ tự, do đó một cách tương tự, không quan trong thứ tự áp dụng vào phép nhân. Tuy nhiên nó không còn đúng với biểu thức. Ví dụ biểu thức sau sẽ cho sự khác biệt về kết quả phụ thuộc vào thực thi phép cộng hoặc phép nhân trước:
x + y / 100 // ambiguous
Bạn có thể cụ thể chính xác một biểu thức được tính toán sử dụng
bởi dấu ngoặc: ( và ). Ví dụ tạo một biểu thức không gây hiểu nhầm có thể được
viết như sau:
(x + y) / 100 // unambiguous, recommended
Nếu bạn không xác định rõ ràng thứ tự cho các toán tử được
thực thi, thì thứ tự đó sẽ được quyết định bằng quyền ưu tiên cho các toán
tử sử dụng trong biểu thức. Các toán tử có quyền ưu tiên cao hơn được tính toán
trước. Ví dụ: Phép chia có quyền ưu tiên cao hơn phép cộng. Vì vậy hai dòng lệnh
dưới đây là tương đương:
x + y / 100
x + (y / 100) // unambiguous, recommended
Khi viết dấu ngoặc trong biểu thức, thì rõ ràng và xác định với cặp ngoặc đơn, điều mà các toán tử nào sẽ được tính toán trước. Khi đó sẽ tạo đoạn code dễ đọc và dễ bảo trì.
Các câu lệnh (Statements)
Các câu lệnh thì thường tương đương với tuần tự trong ngôn
ngữ tự nhiên. Một câu lệnh là một đơn vị thực thi. Các kiểu biểu thức có thể tạo
ra các câu lệnh bằng cách cuối biểu thức là dấu chấm phẩy (;).
·
Các biểu thức gán.
·
Bất kỳ biểu thức có sử dụng ++ hoặc --.
·
Các lời gọi hàm.
·
Các biểu thức tạo đối tượng.
Các câu lệnh như thế được gọi là các câu lệnh biểu thức. Trong ví dụ dưới đây có vài các câu lệnh biểu thức.
// assignment statement
aValue = 8933.234;
// increment statement
aValue++;
// method invocation statement
System.out.println("Hello World!");
// object creation statement
Bicycle myBike = new Bicycle();
Ngoài các câu lệnh biểu thức, ở đây có hai câu lệnh khác: Các
câu lệnh khai báo và các câu lệnh điều khiển. Một câu lệnh khai báo để khai báo
biến. Bạn có thể đã thấy trong ví dụ câu lệnh khai báo trước đó.
// declaration statement
double aValue = 8933.234;
Cuối cùng, các câu lệnh điều khiển điều tiết thứ tự các câu
lệnh thực thi. Bạn sẽ được học trong phần tiếp theo là các cấu trúc điều khiển.
Các khối lệnh.
Một khối lệnh là một nhóm từ không câu lệnh trở lên đặt
trong cặp dấu ngoặc nhọn và có thể sử dụng ở bất kỳ đâu có câu lệnh. Ví dụ BlockDemo
minh
họa sử dụng khối lệnh.
class BlockDemo {
public static void main(String[] args) {
boolean condition = true;
if (condition) { // begin block 1
System.out.println("Condition is true.");
} // end block one
else { // begin block 2
System.out.println("Condition is false.");
} // end block 2
}
}
Bài tập
Bài tập 1 Các câu lệnh có thể được gom lại thành gì?
Bài tập 2 Các câu lệnh tương tự như tuần tự trong ngôn
ngữ tự nhiên, nhưng kết thúc mỗi đoạn, mỗi câu lệnh là dấu gì?
Bài tập 3 Một khối lệnh nhóm từ không câu lệnh trỏe lên
trong dấu gì?
Bài tập 4 Xác định kiểu câu lệnh biểu thức trong các câu lệnh sau:
aValue = 8933.234;
aValue++;
System.out.println("Hello World!");
Bicycle myBike = new Bicycle();