Mục lục:
Video: C++ 12: Các phép toán kết hợp các biểu thức điều kiện 2025
Các biến và các hằng chỉ hữu ích nếu bạn có thể sử dụng chúng để thực hiện tính toán. Thuật ngữ biểu thức là thuật ngữ C + + để tính toán. Bạn đã nhìn thấy biểu thức đơn giản nhất:
int n; // khai báo n = 1; // expression
Các lập trình kết hợp các biến, hằng số và các toán tử để biểu thức. Một toán tử thực hiện một số phép tính số học trên đối số của nó. Hầu hết các toán tử lấy hai đối số - được gọi là các toán tử nhị phân . Một vài nhà khai thác tham gia một cuộc tranh luận - đây là những các toán tử đơn vị .
Tất cả các biểu thức trả lại một giá trị và một loại.
Toán tử nhị phân
Toán tử nhị phân là toán tử có hai đối số. Nếu bạn có thể nói var1 op var2, thì op phải là toán tử nhị phân. Các toán tử nhị phân phổ biến nhất là các thao tác đơn giản giống như bạn đã học trong lớp. Các toán tử nhị phân thông thường xuất hiện trong bảng.
Precedence | Toán tử | Ý nghĩa |
---|---|---|
1 | - (unary) | Trả về âm của đối số |
2 | ++ (9)> > Phòng | 3 |
% (nhị phân) | Modulo | 4 |
+ (nhị phân) | Bổ sung | 4 |
- (nhị phân) | Trừ | 5 |
=, * =,% =, + =, - = (Đặc biệt) | Loại bài tập |
|
Hệ nhị phân đơn giản nhất là toán tử gán được ghi bằng dấu bằng. Toán tử phân công cho biết, "Lấy giá trị ở phía bên tay phải và lưu trữ tại vị trí ở phía bên tay trái của người vận hành. " | Nhân, chia, thêm, trừ, và modulo là toán tử được sử dụng để thực hiện phép tính số học. Chúng hoạt động giống như các toán tử số học bạn đã học được ở trường trung học, với những cân nhắc đặc biệt sau đây: |
|
Việc nhân phải luôn luôn được nói rõ ràng và không bao hàm nó như trong đại số. | Xem xét ví dụ sau: | int n = 2; / / tuyên bố một biến int m = 2n; / / tạo ra lỗi |
Biểu thức ở trên không gán | m | giá trị 2 lần |
. Thay vào đó, C ++ cố giải thích 2
n
như là một tên biến. Vì tên biến không thể bắt đầu với một chữ số, nó tạo ra một lỗi trong bước xây dựng.-
Ý nghĩa của lập trình là: int n = 2; int m = 2 * n; / / this is OK
Phân chia số nguyên sẽ loại bỏ phần còn lại.
Do đó, những điều sau đây: int n = 13/7; // gán giá trị 1 đến n Mười bốn chia cho 7 là 2. Mười ba chia cho bảy là 1. Toán tử modulo trả về phần còn lại sau khi phân chia (bạn không nhớ modulo): int n = 13% 7; / / thiết lập n đến 6 Mười bốn modulo bảy là số không. Mười ba modulo bảy là sáu.
Phát hiện các biểu thức phức hợp
Một biểu thức đơn có thể bao gồm nhiều toán tử:
-
int n = 5 + 100 + 32; Khi tất cả các toán tử đều giống nhau, C ++ đánh giá biểu thức từ trái sang phải:
5 + 100 + 32 105 + 32 137
Khi các toán tử khác nhau được kết hợp trong một biểu thức, C ++ sử dụng một thuộc tính được gọi là
-
ưu tiên. Precedence là thứ tự mà các toán tử được đánh giá bằng một biểu thức phức hợp. Xem xét ví dụ sau:
int n = 5 * 100 + 32;
Trước tiên, nhân hay bổ sung là gì? Hay là biểu hiện này đơn giản được đánh giá từ trái sang phải? Xem lại bảng, cho biết rằng phép nhân có độ ưu tiên là 3, cao hơn mức ưu tiên của phép cộng, đó là 4 (các giá trị nhỏ hơn có độ ưu tiên cao hơn). Do đó sự nhân đầu tiên xảy ra:
5 * 100 + 32 500 + 32 532
Thứ tự của các thao tác bị bỏ qua bởi sự ưu tiên của toán tử. Như bạn có thể thấy
int n = 32 + 5 * 100;
tạo kết quả tương tự:
32 + 5 * 100 32 + 500 532
Nhưng nếu bạn thực sự muốn 5 lần tổng cộng 100 cộng với 32? Bạn có thể ghi đè lên sự ưu tiên của các toán tử bằng cách bao bọc các biểu thức mà bạn muốn thực hiện trước tiên trong ngoặc, như sau: int n = 5 * (100 + 32); Bây giờ việc bổ sung được thực hiện trước khi phép nhân:
5 * (100 + 32) 5 * 132 660
Bạn có thể kết hợp ngoặc đơn để làm cho các biểu thức phức tạp như bạn muốn. C ++ luôn luôn bắt đầu bằng dấu ngoặc lồng nhau sâu nhất mà nó có thể tìm thấy và hoạt động theo cách của nó.
(3 + 2) * ((100/20) + (50/5)) (3 + 2) * (5 + 10) 5 * 15 75
Bạn luôn có thể phân chia các biểu thức phức tạp bằng các biến trung gian. Sau đây là an toàn hơn:
int factor = 3 + 2; int principal = (100/20) + (50/5); int total = factor * principal;
Việc gán tên cho các giá trị trung gian cũng cho phép lập trình giải thích các phần của một phương trình phức tạp - làm cho người lập trình tiếp theo dễ hiểu hơn.