Toán tử trong C#
I. Định nghĩa: C# có một tập hợp các toán tử phong phú. Toán tử là công cụ dùng để thao tác dữ liệu . Một toán tử là một ký hiệu dùng để đại diện cho một thao tác cụ thể nào đó được thực hiện trên dữ liệu.
II. Phân loại:
Với toán tử tớ sẽ chia nó ra thành 5 loại cơ bản như sau:
II.I. Toán tử số học:
Ngôn ngữ C# cung cấp cho chúng ta 5 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ư.
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.
Để 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ư (%).
Vd khi ta thực hiện phép chia 5/2 thì kết quả sẽ thu được là 1 (đây là phần dư còn lại của phép chia nguyên). Trong vòng lặp thì điều này là rất hữu dụng 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. Để hiểu rõ hơn về phép chia lấy phần dư này tớ sẽ có một vd sau đây:
Vd:
Visual C# Code:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication20
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 4; i++)
{
if (i %2 ==0)
{
Console.WriteLine(" so i chia het cho 2 la: {0} ", i);
}
else
{
//không in ra
}
}
Console.ReadLine();
}
}
}
Trong chương trình nó tìm xem trong khoảng i từ 0 đến 3 có số nào chia cho 2 dư 0 thì sẽ in ra còn những số chia cho 2 có dư khác 0 sẽ không được in ra.
II.II. Toán tử quan hệ:
Toán tử quan hệ được dùng để kiểm tra mối quan hệ giữa hai biến, hay giữa một biến và một hằng. Ví dụ việc xét số lớn hơn của hai số a và b được thực hiện thông qua dấu lớn hơn (>) giữa hai toán hạng a và b là (a>b). Bây giờ ta so sánh lớn hơn giữa 4 và 3. Ta có 4 > 3 là đúng thì sẽ trả về giá trị là true trong khi 3> 4 là sai thì trả về giá trị là false. Chúng ta sẽ cùng xem các toán tử quan hệ và ý nghĩa của chúng qua hình sau đây.
Tên toán tử | Kí hiệu | Biểu thức so sánh | Kết quả |
So sánh bằng | == | Value1==100 Value1==50 | True False |
Không bằng | != | Value2 !=100 Value2 !=50 | False True |
Lớn hơn | > | Value1> value2 Value2> value1 | True False |
Lơn hơn hoặc bằng | >= | Value2 >= 50 | True |
Nhỏ hơn | < | Value1 Value2 | False True |
Nhỏ hơn hoặc bằng | <= | Value1<=value2 | False |
Các toán tử so sánh (giả sử value1 = 100, và value2 = 50).
II.III. Toán tử tăng và giảm:
Khi sử dụng các biến số ta thường có thao tác là cộng một giá trị vào biến, trừ đi một giá trị từ biến đó, hay thực hiện các tính toán thay đổi giá trị của biến sau đó gán giá trị mới vừa tính toán cho chính biến đó.
Đối với toán tử này tớ sẽ chia ra làm 2 loại:
a. Tính toán và gán trở lại
Chúng ta sẽ có bảng mô tả các phép toán tự gán như sau:
Toán tử | Ý nghĩa |
+= | Cộng thêm giá trị toán hạng bên phải vào giá trị toán hạng bên trái |
-= | Toán hạng bên trái được trừ bớt đi một lượng bằng giá trị của toán hạng bên phải |
*= | Toán hạng bên trái được nhân với một lượng bằng giá trị của toán hạng bên phải. |
/= | Toán hạng bên trái được chia với một lượng bằng giá trị của toán hạng bên phải. |
%= | Toán hạng bên trái được chia lấy dư với một lượng bằng giá trị của toán hạng bên phải. |
Bảng mô tả các phép toán tự gán.
Ví dụ ta có một biến nguyên a có giá trị bằng 5. Giờ chúng ta muốn giảm giá trị của biến a bằng 3 ta làm như sau:
a = a – 2;
Trong câu lênh này phép trừ được thực hiện trước lấy giá trị của a là 5 trừ đi 2 bằng 3 và sau đó gán giá trị 3 cho biến a. Lúc này biến a sẽ có giá trị bằng 5. Các kiểu khác cũng tương tự. Và việc tăng hay giảm giá trị của một biến trong tính toán thương rất hay xảy ra.
Chú ý: chúng ta rất hay gặp một biến có giá trị được tăng hay giảm 1 và nó rất phổ biến trong lập trình và C# cung cấp cho chúng ta 2 toán tử đặc biết là tăng một (++) hay giảm một (--).
b. Toán tử tăng giảm tiền tố và tăng giảm hậu tố
Trong trường hợp chúng ta sử dụng các phép toán kết hợp như tăng một giá trị cho biến và sau đó gán giá trị của biến cho biến thứ 2. Vậy làm thế nào để xác định được việc nào thực hiện trước, việc nào thực hiện sau?
Để giải quyết yêu cầu trên C# cung cấp thứ tự thực hiện phép toán tăng/giảm với phép toán gán, thứ tự này được gọi là tiền tố (prefix) hay hậu tố (postfix).
Vd ta có: var1 = var2++; // Hậu tố.
var1 = ++var2; //Tiền tố.
Trong trường hợp tiền tố phép tăng sẽ được thực hiện trước và sau đó phép gán mới thực hiện. Và nó ngược lại với trường hợp hậu tố.
Để hiểu rõ hơn ta sẽ có một ví dụ nhỏ như sau:
Visual C# Code:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication20
{
class Program
{
static void Main(string[] args)
{
int a = 5;
int b;
b = a++;
Console.WriteLine("Thuc hien tang sau: {0}, {1}",
a, b);
a = 5;
b = ++a;
Console.WriteLine("Thuc hien tang truoc: {0}, {1}",
a, b);
Console.ReadLine();
}
}
}
II.IV. Toán tử gán:
Đến lúc này toán tử gán khá quen thuộc với chúng ta, hầu hết các chương trình minh họa từ đầu đều đã sử dụng phép gán. Toán tử gán hay phép gán làm cho toán hạng bên trái thay đổi giá trị bằng với giá trị của toán hạng bên phải. Toán tử gán là toán tử hai ngôi. Đây là toán tử đơn giản nhất thông dụng nhất và cũng dễ sử dụng nhất.
ví dụ a = b;
II.V. Toán tử logic:
C# cung cấp cho chúng ta một tập hợp toán tử logic để phục vụ cho người lập trình.
Các bạn xem trong hình sau:
Tên toán tử | Kí hiệu | Biểu thức logic | Giá trị | Logic |
And | && | (x==3)&&(y==7) | False | Cả hai điều kiện phải đúng |
Or | || | (x==3)||(y==7) | True | Chỉ cần một điều kiện đúng |
Not | ! | ! (x==3) | True | Biểu thức trong ngoặc phải sai |
Đôi khi chúng ta muốn kết hợp nhiều điều kiện với nhau như: bắt buộc cả hai hay nhiều điều kiện phải đúng hoặc chỉ cần một trong các điều kiện đúng là đủ hoặc không có điều kiện nào đúng...thì chúng ta phải dùng tới toán tử này.
Ngoài ra chúng ta cần biết thêm tới một loại toán tử nữa là toán tử ba ngôi(?.
Toán tử này sẽ xác định giá trị của một biểu thức điều kiện, và biểu thức điều kiện này phải trả về một giá trị kiểu bool. Có nghĩa là nếu điều kiện đúng thì làm công việc thứ nhất, còn ngược lại điều kiện sai thì làm công việc thứ hai.
Vd:
Visual C# Code:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication20
{
class Program
{
static void Main(string[] args)
{
int a;
int b;
int max;
a = 5;
b = 8;
max = a > b ? a : b;
Console.WriteLine("gia tri lon nhat {0}", max);
Console.ReadLine();
}
}
}
Đây là bài toán tìm giá trị lớn nhất trong 2 số. Nếu a lớn hơn b thì giá trị lớn nhất là a còn sai thì b là giá trị lớn nhất. Đó là ý nghĩa của toán tử này.
0 Response to "Toán tử trong C#"
Đăng nhận xét