Bài 4: Toán tử

Bài này chúng ta cùng nhau tìm hiểu về các toán tử trong Objective-C nhé.

1. Toán tử gán: (=)

Toán tử này dùng để gán một giá trị nào đó cho một biến.

Cũng có thể dùng để gán giá trị của 1 biến cho biến kia. Và cũng có thể dùng để gán giá trị của một hàm cho biến kia.

Nhưng về cơ bản, phép gán sẽ lấy giá trị để gán vào 1 biến, làm cho biến được gán có giá trị đó. Cho nên gọi chung là gán giá trị và 1 biến.

// Tạo biến có tên: DiemVinh (Điểm của Vinh), có kiểu dữ liệu là integer (Sốnguyên).
int DiemVinh;

// Gán giá trị số “8” cho biến DiemVinh vừa tạo.

DiemVinh = 8;

 

// Tạo biến có tên: DiemNguyen (Điểm của Nguyen), có kiểu dữ liệu là integer (Sốnguyên).

int DiemNguyen;

 

// Điểm của Nguyên bằng với điểm của Vinh nên ta gán điểm của Vinh cho điểm của Nguyên.

DiemNguyen = DiemVinh;

 

// Tạo biến TongDiem (Tổng điểm) để lưu trữ điểm tổng của Vinh và Nguyên

int TongDiem;

 

// Gán giá trị của phép tính tổng điểm của Vinh và điểm của Nguyên cho biến TongDiem

TongDiem = DiemVinh + DiemNguyen;

 

 

2. Toán tử số học: + – * / %

Bao gồm các toán tử sau:

+ cộng, – trừ, * nhân, / chia, % lấy phần dư

Thứ tự thực hiện các toán tử này cũng giống như thứ tự thực hiện trong toán học.
Mình hay đọc là “nhân chia trước, cộng trừ sau” đó bạn.
Riêng với toán tử lấy phần dư, đây chính là phép toán lấy phần dư trong phép chia hai số nguyên với nhau.

 

Ví dụ, ta muốn lấy phần dư của phép chia 10/3, ta làm như sau:

 

Vậy để chia lấy phần nguyên đối với các phép chia có dư, thì ta làm như sau:

 

Lúc này, phép toán sẽ tính toán giá trị của biểu thức. Kết quả khi chưa gán vào biến PhanNguyen (integer) là 3.33333, nhưng khi gán vào biến PhanNguyen, vì có kiểu là integer nên ngay lập tức, ngôn ngữ sẽ đổi số thực tính được thành số nguên gần nhất với nó. Cũng như làm tròn số vậy, các bạn.

3. Toán tử phức hợp: (+=, -=, *=, /=, %=, &=)

Ví dụ đơn giản đối với phép toán phức hợp +=

a += b;

Tương đương với a = a + b;
Tương tự đối với các toán tử phức hợp khác, bạn nhé.
Riêng toán tử phức hợp &=, được sử dụng trong các kiểu dữ liệu con trỏ, bạn nhé.

 

4. Tăng và giảm giá trị (++, —):

Để tiết kiệm thời gian cũng như các lệnh mà bạn phải gõ vào trong quá trình lập trình, Objective-C cung cấp cho bạn các toán tử tăng và giảm giá trị rất tiện lợi.

 

++ là toán tử tăng giá trị của biến thêm 1, tương đương với toán tử phức hợp += với giá trị là 1 (+=1)

— là toán tử giảm giá trị của biến đi 1, tương đương với toán tử phức hợp -= với giá trị là 1 (-=1)

 

5. Toán tử quan hệ: (==, !=, >, <, >=, <=)

Dùng để so sánh hai biểu thức với nhau. Có nghĩa là so sánh giá trị của hai biểu thức đó với nhau.

Sau khi thực hiện xong toán tử quan hệ, giá trị của phép toán được trả về có kiểu boolen (đúng – sai)

== Bằng hoặc có giá trị tương đương cùng kiểu.

(10 == 3) -> sai (0 hoặc false hoặc FALSE)

 

!= Khác hoặc có giá trị khác nhau cùng kiểu.

(10 != 3) -> đúng (1 hoặc true hoặc TRUE)

 

> Lớn hơn

(10 > 3) -> đúng (1 hoặc true hoặc TRUE)

 

< Nhỏ hơn

(10 < 3) -> sai (0 hoặc false hoặc FALSE)

 

>= Lớn hơn hoặc bằng

(10 >= 3) -> đúng (1 hoặc true hoặc TRUE)

 

<= Nhỏ hơn hoặc bằng

(10 <= 3) -> sai (0 hoặc false hoặc FALSE)

 

Nói thêm với bạn, định nghĩa của toán tử quan hệ là so sánh hai biểu thức với nhau, đồng nghĩa với việc so sánh như bên dưới:
SoThuNhat = 2;

SoThuHai = 1;

(SoThuNhat * 2 == SoThuHai *4) -> đúng (1 hoặc true hoặc TRUE)

 

6. Toán tử logic: (!, &&, ||)

! là toán tử Not, nghĩa là không phải, không đúng, sai (0, false hoặc FALSE)

!true -> false.

!false -> true.

 

Toán tử %% và toán tử || được dùng để lấy giá một giá trị duy nhất.

Ví dụ:
(1=1 && 2=2) -> đúng (1 hoặc true hoặc TRUE)

 

Ở đây giá trị trả về đúng vì cả hai biểu thức ở hai vế && đều đúng. Nếu chỉ có 1 vế đúng thì toán tử && trả về sai.

(1=1 && 2=3) -> sai (0 hoặc false hoặc FALSE)

(1=1 || 2=2) -> đúng (1 hoặc true hoặc TRUE)

(1=1 || 2=3) -> đúng (1 hoặc true hoặc TRUE)

(1=3 || 2=5) -> sai (0 hoặc false hoặc FALSE)

 

Toán tử này chỉ cần 1 vế đúng là đủ.
Nhưng nếu cả hai vế đều sai thì kết quả trả về sẽ là “sai”.

 

7. Toán tử điều kiện: (?)

Toán tử điều kiện tính toán một biểu thức và trả về một giá trị khác tuỳ thuộc vào biểu thức đó là đúng hay sai.
Điều kiện ? Kết quả a : Kết quả b
Nếu Điều kiện là đúng thì trả về kết quả là a, nếu điều kiện sai thì trả về kết quả là b.

 

Ví dụ:
(5 > 1) ? @“Đúng rồi.” : @“Sai rồi.”

Toán tử điều kiện

 

Bài tập:

Ở phần này, mình muốn các bạn từ nay về sau, khi giải bài xong, có thể chụp hình hoặc đăng bài giải lên đây để mọi người cùng tham khảo.
Đúng sai (về cách viết, thuật toán) sẽ là cơ sở giúp mình viết các bài viết hướng dẫn và bài tập tốt hơn.
Ngoài ra, nếu các bạn bị sai về cú pháp hoặc các diễn giải, thuật toán, mình sẽ kịp thời sửa cho các bạn.

 

1. Nguyễn Văn A mới nhận công tác ở Ngân Hàng Nhà nước, với tháng lương đầu tiên là 5 triệu đồng (5.000.000 vnđ). Tính toán xem, nếu cứ giữ mức lương như vậy trong vòng 3 năm, thì tổng số lương mà Nguyễn Văn A nhận được trong 3 năm là bao nhiêu tiền.

 

2. Mình có đọc được một số bài toán hay hay, chia sẻ với các bạn để các bạn viết ứng dụng giải các bài này.
Mẹ của A có tên là B, muốn tính được tuổi của A thì làm như sau:
Tính độ dài tên (chỉ tên, không họ, không tên lót) của B nhân với 2, cộng với 5, nhân với 50, cộng với 1763, trừ đi năm sinh của A, hai số cuối cùng là đáp án tuổi của A.
a. Tính tuổi của A với: A sinh năm 1992, Mẹ của A tên là Nguyen Thi Anh Tuyet.
b. Tính tuổi của A với: A sinh năm 1994, Mẹ của A tên là Tran Thi Hoai Thuong.
c. Tính tuổi của A với: A sinh năm 1985, Mẹ của A tên là Le Lan Anh.

3. Nếu 1 ngày có 30 tiếng, hãy tính xem 1 ngày có bao nhiêu giây.

 

4. Một năm, công ty A thất thoát 1 triệu đồng (1.000.000 vnđ). Cũng năm đó, công ty B thu được lợi nhuận là 35 triệu đồng (35.000.000 vnđ). Nếu cứ như vậy trong 1 năm 8 tháng tới, thì công ty A và công ty B sẽ lời hoặc lỗ bao nhiêu tiền?
Tính xem công ty A lời hoặc lỗ hơn công ty B bao nhiêu tiền trong 1 năm tới.

 

5. Cho biết: Công ty Facebook có 500 nhân viên. Trong đó có 300 nhân viên loại 1, 150 nhân viên loại 2 và 50 nhân viên loại 3.
Nhân viên loại 1 có mức lương là 200 USD/tháng
Nhân viên loại 2 có mức lương là 450 USD/tháng
Nhân viên loại 3 có mức lương là 600 USD/tháng
Năm đầu tiên facebook thu lời 13 triệu USD.
Hỏi trong năm đó các loại nhân viên trên nhận được bao nhiêu tiền lương.
Nếu số tiền thu lời khôg đủ trả thì facebook phải nợ nhân viên bao nhiêu tiền?

Like - Share - và cho tụi mình biết ý kiến của bạn bằng cách bình luận bên dưới nhé