1. Trang chủ
  2. » Công Nghệ Thông Tin

Toán tử

9 194 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 113,71 KB

Nội dung

Toán tử Toán tử Bởi: Khuyet Danh Toán tử gán Đến lúc toán tử gán quen thuộc với chúng ta, hầu hết chương trình minh họa từ đầu sách 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ị với giá trị toán hạng bên phải Toán tử gán toán tử hai Đây toán tử đơn giản thông dụng dễ sử dụng 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 phép toán Toán tử cuối toán tử chia nguyên lấy phần dư Chúng ta tìm hiểu chi tiết phép toán phần tiếp sau Các phép toán số học (+,-,*,/) Các phép toán thiếu ngôn ngữ lập trình nào, C# không ngoại lệ, phép toán số học đơn giản cần thiết bao gồm: phép cộng (+), phép trừ (-), phép nhân (*), phép chia (/) nguyên không nguyên Khi chia hai số nguyên, C# bỏ phần phân số, hay bỏ phần dư, tức ta chia 8/ kết bỏ phần dư 2, để lấy phần dư C# cung cấp thêm toán tử lấy dư trình bày phần Tuy nhiên, chia cho số thực có kiểu float, double, hay decimal kết chia trả số thực Phép toán chia lấy dư Để tìm phần dư phép chia nguyên, sử dụng toán tử chia lấy dư (%) VíThật phép toán chia lấy dư hữu dụng cho người lập trình Khi thực phép chia dư n cho số khác, số bội số n kết phép chia dư 1/9 Toán tử 20 % = 20 bội số Điều cho phép ứng dụng vòng lặp, muốn thực công việc cách khoảng n lần, ta cần kiểm tra phép chia dư n, kết thực công việc Cách sử dụng áp dụng ví dụ minh họa sử dụng vòng lặp for bên Ví dụ sau minh họa sử dụng phép toán chia số nguyên, thực Phép chia 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: float: 4.25 double: 4.25 decimal: 4.25 Modulus: - Toán tử tăng giảm Khi sử dụng biến số ta thường có thao tác cộng giá trị vào biến, trừ giá trị từ biến đó, hay thực tính toán thay đổi giá trị biến sau gán giá trị vừa tính toán cho biến Tính toán gán trở lại Giả sử có biến tên Luong lưu giá trị lương người, biến Luong có giá trị thời 1.500.000, sau để tăng thêm 200.000 ta viết sau: 2/9 Toán tử Trong câu lệnh phép cộng thực trước, kết vế phải 1.700.000 kết gán lại cho biến Luong, cuối Luong có giá trị 1.700.000 Chúng ta thực việc thay đổi giá trị gán lại cho biến với phép toán số học nào: Luong = Luong * 2; Luong = Luong – 100.000; Do việc tăng hay giảm giá trị biến thường xảy tính toán nên C# cung cấp phép toán tự gán (self- assignment) Bảng sau liệt kê phép toán tự gán Mô tả phép toán tự gán Toán tử Ý nghĩa += Cộng thêm giá trị toán hạng bên phảivào giá trị toán hạng bên trái -= Toán hạng bên trái trừ bớt lượng giá trị toán hạng bênphải *= Toán hạng bên trái nhân với lượng giá trị toán hạng bênphải /= Toán hạng bên trái chia với lượng giá trị toán hạng bênphải %= Toán hạng bên trái chia lấy dư với lượng giá trị toán hạngbên phải Dựa phép toán tự gán bảng ta thay lệnh tăng giảm lương sau: Luong += 200.000; Luong *= 2; Luong -= 100.000; Kết lệnh thứ giá trị Luong tăng thêm 200.000, lệnh thứ hai làm cho giá trị Luong nhân đôi tức tăng gấp lần, lệnh cuối trừ bớt 100.000 Luong Do việc tăng hay giảm phổ biến lập trình nên C# cung cấp hai toán tử đặc biệt tăng (++) hay giảm ( ) 3/9 Toán tử Khi muốn tăng giá trị biến đếm vòng lặp ta viết sau: bienDem++; Toán tử tăng giảm tiền tố tăng giảm hậu tố Giả sử muốn kết hợp phép toán gia tăng giá trị biến gán giá trị biến cho biến thứ hai, ta viết sau: var1 = var2++; Câu hỏi đặt gán giá trị trước cộng hay gán giá trị sau cộng Hay nói cách khác giá trị ban đầu biến var2 10, sau thực ta muốn giá trị var1 10, var2 11, hay var1 11, var2 11? Để giải yêu cầu C# cung cấp thứ tự thực phép toán tăng/giảm với phép toán gán, thứ tự gọi tiền tố (prefix) hay hậu tố (postfix) Do ta viết: var1 = var2++; // Hậu tố Khi lệnh thực phép gán thực trước tiên, sau đến phép toán tăng Kết var1 = 10 var2 = 11 Còn trường hợp tiền tố: var1 = ++var2; Khi phép tăng thực trước tức giá trị biến var2 11 cuối phép gán thực Kết hai biến var1 var2 điều có giá trị 11 Để hiểu rõ hai phép toán xem ví dụ minh họa sau Minh hoạ sử dụng toán tử tăng trước tăng sau gán using System; class Tester { static int Main() { int valueOne = 10; int valueTwo; valueTwo = valueOne++; Console.WriteLine("Thuc hien tang sau: {0}, {1}", valueOne, valueTwo); valueOne = 20; valueTwo = ++valueOne; Console.WriteLine("Thuc hien tang truoc: {0}, {1}", valueOne, valueTwo); return 0; } } - 4/9 Toán tử Kết quả: Thuc hien tang sau: 11, 10 Thuc hien tang truoc: 21, 21 - Toán tử quan hệ Những toán tử quan hệ dùng để so sánh hai giá trị, sau trả kết giá trị logic kiểu bool (true hay false) Ví dụ toán tử so sánh lớn (>) trả giá trị true giá trị bên trái toán tử lớn giá trị bên phải toán tử Do > trả giá trị true, > trả giá trị false Các toán tử quan hệ ngôn ngữ C# trình bày bảng 3.4 bên Các toán tử bảng minh họa với hai biến value1 value2, value1 có giá trị 100 value2 có giá trị 50 Các toán tử so sánh (giả sử value1 = 100, value2 = 50) Tên toán tử Kí hiệu Biểu thức so sánh Kết so sánh So sánh == value1 == 100value1 == 50 truefalse Không != value2 != 100value2 != 90 falsetrue Lớn > value1 > value2value2 > value1 truefalse Lớn hay >= value2 >= 50 Nhỏ value1 < value2value2 < value1 falsetrue < Nhỏ hay = is Trái So sánh == != Phải Phép toán logicAND & Trái Phép toán logicXOR ^ Trái 10 Phép toán logic OR | Trái 11 Điều kiện AND && Trái 12 Điều kiện OR || Trái 13 Điều kiện ?: Phải 14 Phép gán = *= /= %= += -= = &=^= |= Phải Các phép toán liệt kê loại có thứ tự theo mục thứ thự bảng: thứ tự trái tức độ ưu tiên phép toán từ bên trái sang, thứ tự phải phép toán có độ ưu tiên từ bên phải qua trái Các toán tử khác loại có độ ưu tiên từ xuống dưới, toán tử loại có độ ưu tiên cao phép toán gán có độ ưu tiên thấp toán tử 8/9 Toán tử Toán tử ba Hầu hết toán tử đòi hỏi có toán hạng toán tử (++, ) hay hai toán hạng (+,-,*,/, ) Tuy nhiên, C# cung cấp thêm toán tử có ba toán hạng (?:) Toán tử có cú pháp sử dụng sau: ? : Toán tử xác định giá trị biểu thức điều kiện, biểu thức điều kiện phải trả giá trị kiểu bool Khi điều kiện thực hiện, ngược lại điều kiện sai thực Có thể diễn giải theo ngôn ngữ tự nhiên toán tử có ý nghĩa : “Nếu điều kiện làm công việc thứ nhất, ngược lại điều kiện sai làm công việc thứ hai” Cách sử dụng toán tử ba minh họa ví dụ sau Sử dụng toán tử bao using System; class Tester { public static int Main() { int value1; int value2; int maxValue; value1 = 10; value2 = 20; maxValue = value1 > value2 ? value1 : value2; Console.WriteLine("Gia tri thu nhat {0}, gia tri thu hai {1}, gia tri lon nhat {2}",value1,value2, maxValue); return 0; } } Kết quả: Gia tri thu nhat 10, gia tri thu hai 20, gia tri lon nhat 20 Trong ví dụ minh họa toán tử ba sử dụng để kiểm tra xem giá trị value1 có lớn giá trị value2, trả giá trị value1, tức gán giá trị value1 cho biến maxValue, ngược lại gán giá trị value2 cho biến maxValue 9/9 ... tiên từ xuống dưới, toán tử loại có độ ưu tiên cao phép toán gán có độ ưu tiên thấp toán tử 8/9 Toán tử Toán tử ba Hầu hết toán tử đòi hỏi có toán hạng toán tử (++, ) hay hai toán hạng (+,-,*,/,... phép toán tự gán Mô tả phép toán tự gán Toán tử Ý nghĩa += Cộng thêm giá trị toán hạng bên phảivào giá trị toán hạng bên trái -= Toán hạng bên trái trừ bớt lượng giá trị toán hạng bênphải *= Toán. .. value2 true false Như bảng ta lưu ý toán tử so sánh (==), toán tử ký hiệu hai dấu (=) liền hàng , khoảng trống xuất chúng Trình biên dịch C# xem hai dấu toán tử Toán tử logic Trong câu lệnh if mà tìm

Ngày đăng: 31/12/2015, 21:47

Xem thêm

w