Các toán tử (operators)

Một phần của tài liệu Lý thuyết lập trình C++ (Trang 44 - 47)

- from alpha to omega 4 Trả về giá trị của hàm (returning value from functions)

4. Các toán tử (operators)

Kiểu dữ liệu không chỉ quy định miền biểu diễn của các biến thuộc kiểu đó mà nó con quy định các phép toán (hay toán tử - operators) được phép thao tác trên những biến đó. Ví dụ ta có thể lấy phần dư của một số kiểu int bằng toán tử % nhưng không thể làm điều này với kiểu double. Các toán tử của C++ có thể phân thành ba loại: toán tử số

học (arithmetic), toán tử quan hệ và logic (relational and logical), và các toán tử thao tác trên bit (bitwise).

Toán tử số học (arithmetic operator): bao gồm

• Addition (+): toán tử cộng • Substraction (-): toán tử trừ • Multiplication (*): toán tử nhân • Division (/): toán tử chia • Modulus (%): toán tử chia dư

• Increment (++): toán tử tăng một đơn vị • Decrement (--): toán tử giảm một đơn vị • Negative (-): toán tử phủ định một ngôi

Chú ý rằng toán tử modulus (%) chỉ áp dụng được với giá trị nguyên (char, int, long, bool), không áp dụng được với float hay double. Nó trả về kết quả là phần dư của phép chia hai số nguyên. Ví dụ

C++ Code:

Lựa chọn code | Ẩn/Hiện code

int x=5, y=3;

cout << x%y << endl; // in ra kết quả là 2, vì 5 chia 3 dư 2

Toán tử division (/) khi áp dụng với số nguyên thì sẽ là phép chia nguyên. Nghĩa là kết quả trả về sẽ là phần nguyên của phép chia, muốn thu được kết quả chính xác ta phải “ép kiểu”. Ví dụ chương trình sau:

C++ Code:

Lựa chọn code | Ẩn/Hiện code

int x=5, y=2;

cout << x/y << endl; // in ra 2

Toán tử ++ và -- là hai toán tử chỉ có trong C++. Nó cho phép viết những câu lệnh hết sức súc tích. Nó có thể dùng cả ở dạng tiền tố (prefix) lẫn hậu tố (postfix).

C++ Code:

Lựa chọn code | Ẩn/Hiện code

++x hoặc x++ : tương đương với x=x+1;

--x hoặc x-- : tương đương với x=x-1;

Hầu hết các compiler C++ đều sinh mã máy rất nhanh và hiệu quả cho cho các toán tử ++ và --. Vì vậy câu lệnh x++; hoặc ++x; sẽ nâng cao hiệu suất chương trình hơn là sử dụng câu lệnh gán x=x+1.

Nếu các câu lệnh tăng/giảm giá trị của biến đứng độc lập, nghĩa là không được sử dụng trong các biểu thức tính toán, thì cách viết tiền tố và hậu tố là hoàn toàn như nhau. Tuy nhiên, nếu câu lệnh tăng/giảm giá trị này nằm trong biểu thức tính toán thì sẽ có sự khác biệt. Dạng tiền tố sẽ tăng giá trị của biến lên 1 đơn vị rồi mới sử dụng, còn dạng hậu tố sử dụng giá trị của biến xong rồi mới tăng giá trị biến lên 1. Xem xét chương trình sau.

C++ Code:

Lựa chọn code | Ẩn/Hiện code

#include <iostream> using namespace std; int main(){ int a=100; int x=5, y=5;

cout << a*(x++) << endl; // in ra 500 vì dùng x=5 trước rồi mới tăng x thành 6

cout << a*(++y) << endl; // in ra 600 vì tăng y lên thành 6 rồi mới sử dụng

return 0; }

Toán tử quan hệ và logic (relational and logic operators)

Các toán tử quan hệ thể hiện mối quan hệ giữa giá trị này với giá trị khác. Ví dụ: x>=5; y! =z; … Các toán tử logic thể hiện cách mà các giá trị logic (true/false) liên kết với nhau. Ví dụ (x>=3) && (x<=10), … Vì các toán tử quan hệ sinh ra các giá trị true/false nên nó thường đi kèm với các toán tử logic. Các toán tử quan hệ của C++ bao gồm: >, >=, <, <=, ==, !=. Các toán tử logic bao gồm: && (and), || (or), ! (not). Ý nghĩa của chúng hoàn toàn như trong đại số.

__________________

Vấn đề không phải là bước nhanh, mà là luôn luôn bước luôn bước

Đã được chỉnh sửa lần cuối bởi first_pace : 08-03-2011 lúc 03:21 PM.

#12 07-03-2011, 09:44 PM 07-03-2011, 09:44 PM first_pace Thành viên chính thức Ngày gia nhập: 02 2011 Nơi ở: Hà Nội Bài viết: 67 Cấu trúc lựa chọn (rẽ nhánh)

BÀI 9a. CÁC CẤU TRÚC ĐIỀU KHIỂN (PART 1)

CONTROL FLOWS- Cấu trúc rẽ nhánh - - Cấu trúc rẽ nhánh -

Như mình đã nói trong bài 1, lập trình cấu trúc (structured programming) được xây dựng dựa theo mô hình toán học của Bohm và Guiseppe. Theo đó một chương trình máy tính có thể được viết dựa trên ba cấu trúc là: tuần tự, rẽ nhánh và lặp. C++ được thiết kế không chỉ hỗ trợ lập trình hướng đối tượng mà còn cả cho lập trình cấu trúc vì vậy nó cung cấp những cấu trúc điều khiển (control flows) để thực hiện việc cài đặt các cấu trúc trên. Bài này mình sẽ giới thiệu chi tiết cách sử dụng cũng như những đánh giá sơ lược về các cấu trúc lựa chọn (selection), lặp (iteration) và các lệnh nhảy (jump statements).

Một phần của tài liệu Lý thuyết lập trình C++ (Trang 44 - 47)

Tải bản đầy đủ (DOCX)

(78 trang)
w