Chương 3: NỀN TẢNG NGÔN NGỮ C#
3.6.2 Toán tử toán học
Ngôn ngữ C# cung cấp năm toán tử toán học, bao gồm bốn toán tử đầu các phép toán cơ bản. Toán tử cuối cùng là toán tử chia nguyên lấy phần dư. Chúng ta sẽ tìm hiểu chi tiết các phép toán này trong phần tiếp sau.
Các phép toán số học cơ bản (+,-,*,/)
Các phép toán này không thể thiếu trong bất cứ ngôn ngữ lập trình nào, C# cũng không ngoại lệ, các phép toán số học đơn giản nhưng rất cần thiết bao gồm: phép cộng (+), phép trừ (-), phép nhân (*), phép chia (/) nguyên và không nguyên.
Khi chia hai số nguyên, thì C# sẽ bỏ phần phân số, hay bỏ phần dư, tức là nếu ta chia 8/3 thì sẽ được kết quả là 2 và sẽ bỏ phần dư là 2, do vậy để lấy được phần dư này thì C# cung cấp thêm toán tử lấy dư sẽ được trình bày trong phần kế tiếp.
Tuy nhiên, khi chia cho số thực có kiểu như float, double, hay decimal thì kết quả chia được trả về là một số thực.
Phép toán chia lấy dư
Để tìm phần dư của phép chia nguyên, chúng ta sử dụng toán tử chia lấy dư (%). Ví dụ, câu lệnh sau 8%3 thì kết quả trả về là 2 (đây là phần dư còn lại của phép chia nguyên). Thật sự phép toán chia lấy dư rất hữu dụng cho người lập trình . Khi chúng ta thực hiện một phép chia dư n cho một số khác, nếu số này là bội số
của n thì kết quả của phép chia dư là 0. Ví dụ 20 % 5 = 0 vì 20 là một bội số của 5. Điều này cho phép chúng ta ứng dụng trong vòng lặp, khi muốn thực hiện một công việc nào đó cách khoảng n lần, ta chỉ cần kiểm tra phép chia dư n, nếu kết quả bằng 0 thì thực hiện công việc. Cách sử dụng này đã áp dụng trong ví dụ minh họa sử dụng vòng lặp for bên trên. Ví dụ 3.17 sau minh họa sử dụng các phép toán chia trên các số nguyên, thực...
Ví dụ 3.17: Phép chia và phép chia lấy dư.
--- using System;
class Tester {
public static void Main() {
int i1, i2; float f1, f2; double d1, d2; decimal dec1, dec2;
i1 = 17; i2 = 4; f1 = 17f; f2 = 4f; d1 = 17; d2 = 4; dec1 = 17; dec2 = 4; Console.WriteLine(“Integer: \t{0}”, i1/i2); Console.WriteLine(“Float: \t{0}”, f1/f2); Console.WriteLine(“Double: \t{0}”, d1/d2); Console.WriteLine(“Decimal: \t{0}”, dec1/dec2); Console.WriteLine(“\nModulus: : \t{0}”, i1%i2); } } --- Kết quả: Integer: 4 float: 4.25 double: 4.25 decimal: 4.25
Modulus: 1
---