Trang chủ
Bài viết mới
Diễn đàn
Bài mới trên hồ sơ
Hoạt động mới nhất
VIDEO
Mùa Tết
Văn Học Trẻ
Văn Học News
Media
New media
New comments
Search media
Đại Học
Đại cương
Chuyên ngành
Triết học
Kinh tế
KHXH & NV
Công nghệ thông tin
Khoa học kĩ thuật
Luận văn, tiểu luận
Phổ Thông
Lớp 12
Ngữ văn 12
Lớp 11
Ngữ văn 11
Lớp 10
Ngữ văn 10
LỚP 9
Ngữ văn 9
Lớp 8
Ngữ văn 8
Lớp 7
Ngữ văn 7
Lớp 6
Ngữ văn 6
Tiểu học
Thành viên
Thành viên trực tuyến
Bài mới trên hồ sơ
Tìm trong hồ sơ cá nhân
Credits
Transactions
Xu: 0
Đăng nhập
Đăng ký
Có gì mới?
Tìm kiếm
Tìm kiếm
Chỉ tìm trong tiêu đề
Bởi:
Hoạt động mới nhất
Đăng ký
Menu
Đăng nhập
Đăng ký
Install the app
Cài đặt
Chào mừng Bạn tham gia Diễn Đàn VNKienThuc.com -
Định hướng Forum
Kiến Thức
- HÃY TẠO CHỦ ĐỀ KIẾN THỨC HỮU ÍCH VÀ CÙNG NHAU THẢO LUẬN Kết nối:
VNK X
-
VNK groups
| Nhà Tài Trợ:
BhnongFood X
-
Bhnong groups
-
Đặt mua Bánh Bhnong
CÔNG NGHỆ
Công Nghệ Thông Tin
Code
Toán tử trong C#
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Trả lời chủ đề
Nội dung
<blockquote data-quote="uocmo_kchodoi" data-source="post: 177487" data-attributes="member: 165510"><p>Tiếp theo trong series bài giảng về C# chúng ta sẽ đi tìm hiểu về toán tử trong C#. Người ta sử dụng các toán tử để thực hiện phép tính trên biến và giá trị.</p><p></p><p><span style="font-size: 18px"><strong>1. Toán tử (<em>Operator</em>) trong C#</strong></span></p><p><span style="font-size: 18px"></span></p><p>Đối với C# có nhiều loại toán tử được cung cấp sẵn:</p><p></p><p><span style="font-size: 15px"><strong>Toán tử số học</strong></span></p><p><span style="font-size: 15px"></span></p><p>Các toán tử số học thường được sử dụng cùng với các giá trị số để thực hiện các phép toán số học như: cộng, trừ, nhân, chia lấy phần nguyên, chia lấy phần dư,...</p><p></p><p>Các phép toán này không thể thiếu trong mọi ngôn ngữ lập trình nào và C# cũng vậy.</p><p></p><p>Giả sử ta có hai biến <em>x</em> và <em>y</em>. Bảng sau đây miêu tả kết quả về của hai biến <em>x</em> và <em>y</em>:</p><p></p><p><strong>Toán tử</strong> ----------------- <strong>Tên ---------------- Ví dụ --------------------</strong> <strong>Kết quả</strong></p><p>.......+ ...........................Cộng..................... x+y ..........................Tổng của x và y</p><p>....... - ............................ Trừ .......................x-y ..........................Hiệu của x và y</p><p>.......* .............................Tích .......................x*y.......................... Tích của x và y</p><p>......./........................... ..Chia....................... x/y ..........................Phần nguyên của thương x chia y</p><p>......% .........................Chia dư ...................x%y ..........................Phần dư của thương x chia y</p><p></p><p>Lưu ý: Khi chia số thực có kiểu như <em>float, double</em> hay <em>decimal </em>thì kết quả chia được là một số thực.</p><p></p><p>Giả sử x = 5 và y = 28 ta có ví dụ sau:</p><p></p><p><em><span style="color: #5900b3">using System;</span></em></p><p><em><span style="color: #5900b3">using System.Collections.Generic;</span></em></p><p><em><span style="color: #5900b3">using System.Linq;</span></em></p><p><em><span style="color: #5900b3">using System.Text;</span></em></p><p><em><span style="color: #5900b3"></span></em></p><p><em><span style="color: #5900b3">namespace freetuts.net</span></em></p><p><em><span style="color: #5900b3">{</span></em></p><p><em><span style="color: #5900b3"> class freetuts</span></em></p><p><em><span style="color: #5900b3"> {</span></em></p><p><em><span style="color: #5900b3"> static void Main(string[] args)</span></em></p><p><em><span style="color: #5900b3"> {</span></em></p><p><em><span style="color: #5900b3"> int x = 5;</span></em></p><p><em><span style="color: #5900b3"> int y = 28;</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("\nTong cua hai so y+x = "+(x+y));</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("\nhieu cua hai so y-x = "+(y-x));</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("\nTich cua hai so y*x = "+y*x);</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("\nthuong cua hai so y/x = "+y/x);</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("\nPhan du cua thuong y/x = "+y%x);</span></em></p><p><em><span style="color: #5900b3"> </span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("\nfreetuts chuc ban hoc tot !!!");</span></em></p><p><em><span style="color: #5900b3"> Console.ReadKey();</span></em></p><p><em><span style="color: #5900b3"> }</span></em></p><p><em><span style="color: #5900b3"> }</span></em></p><p><em><span style="color: #5900b3">}</span></em></p><p>Sau khi biên dịch ta được:</p><p></p><p><img src="https://freetuts.net/upload/tut_post/images/2017/12/14/1135/const_1.JPG" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p><span style="font-size: 15px"><strong>Toán tử gán</strong></span></p><p><span style="font-size: 15px"></span></p><p>Mình nghĩ toán tử gán đã khá quen thuộc với chúng ta, hầu hết các chương trình ví dụ trong series chúng ta đều có sử dụng phép gán. Toán tử 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. Theo mình thì đây là dạng toán tử đơn giản và thông dụng nhất.</p><p></p><p>Chúng ta có một số toán tử gán được sử dụng trong C#:</p><p></p><p><strong>Toán tử............................................</strong> <strong>Ví dụ......................................</strong> <strong>Kết quả</strong></p><p>.....=.................................................... x=y ........................................Gán giá trị y cho x</p><p>....+=.................................................. x+=y ......................................Gán giá trị x = x+y</p><p>....-= ....................................................x-=y .......................................Gán giá trị x = x-y</p><p>....*= ...................................................x*=y ........................................Gán giá trị x = x*y</p><p>..../= ....................................................x/=y ........................................Gán giá trị x = x/y</p><p>....%= .................................................x%=y....................................... Gán giá trị x = x%y</p><p>...<<=................................................ x<<=3 .......................................Gán giá trị x = x<<3</p><p>....>>=............................................... x>>=3 .......................................Gán giá trị x = x>>3</p><p>.....&=................................................. x&=2 .................................Gán giá trị x = x&2 (<em>Phép AND bit</em>)</p><p>.....^= ..................................................x^=2........................... Gán giá trị x = x^2 (<em>Phép OR loại trừ bit</em>)</p><p>.....|= ...................................................x|=2.................................. Gán giá trị x = x|2 (<em>Phép OR bit</em>)</p><p></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff">using System;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff">using System.Collections.Generic;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff">using System.Linq;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff">using System.Text;</span></em></span></p><p><span style="font-size: 12px"></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff">namespace freetuts.net</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff">{</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> class freetuts</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> {</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> static void Main(string[] args)</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> {</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> int x = 5;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> int y = 28;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> Console.WriteLine("\nx = "+x);</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> Console.WriteLine("\ny = "+y);</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> y += x;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> Console.WriteLine("\ny= y + x = "+y);</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> y -= x;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> Console.WriteLine("\ny= y - x = " + y);</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> y *= x;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> Console.WriteLine("\ny= y * x = " + y);</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> y /= x;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> Console.WriteLine("\ny= y / x = " + y);</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> y %= x;</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> Console.WriteLine("\ny= y % x = " + y);</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> </span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> Console.WriteLine("\nfreetuts chuc ban hoc tot !!!");</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> Console.ReadKey();</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> }</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff"> }</span></em></span></p><p><span style="font-size: 12px"><em><span style="color: #8000ff">}</span></em></span></p><p>Kết quả sau khi biên dịch chương trình:</p><p></p><p><img src="https://freetuts.net/upload/tut_post/images/2017/12/14/1135/toantu1.JPG" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Ta dễ dàng thấy giá trị của y thay đổi sau mỗi lần gán trị.</p><p></p><p><span style="font-size: 12px"><strong>Toán tử tăng giảm tiền tố và hậu tố:</strong></span></p><p><span style="font-size: 12px"></span></p><p>Giả sử ta muốn tăng giá trị của một biến x rồi gán nó cho biến y, ta làm như sau:</p><p></p><p>y = x++; hoặc y = ++x;</p><p></p><p>Vậy đâu là điểm khác biệt giữa 2 cú pháp trên ? Giả sử cho giá trị của biến x = 9 ta cùng đi phân tích nhé.</p><p></p><p>Khi lệnh y = x++; được thực hiện thì phép gán sẽ được thực hiện trước tiên và sau đó mới đến phép toán tăng. Ta gọi đây là tăng hậu tố, và giá trị của các biến bây giờ là x = 10 và y = 9.</p><p></p><p>Còn đối với lệnh y = ++x; phép toán tăng sẽ được thực hiện trước rồi mới đến toán tử gán. Ta gọi đây là tăng tiền tố, các giá trị của x và y bây giờ là như nhau và đều bằng 10.</p><p></p><p>Tương tự với giảm hậu tố hay giảm tiền tố cũng như vậy nhé.</p><p></p><p><span style="font-size: 15px"><strong>Toán tử logic</strong></span></p><p>Đôi lúc chúng ta muốn kết hợp nhiều điều kiện với nhau ví dụ như bắt buộc cả hai biểu thức điều kiện đều đúng hoặc chỉ cần một biểu thức đúng thì mới thực hiện một lệnh gì đó. Trong C# hỗ trợ 3 toán tử logic như sau:</p><p></p><p><strong>Toán tử</strong> ............<strong>Ký hiệu...................</strong> <strong>Cú pháp........................</strong> <strong>miêu tả</strong></p><p><strong></strong></p><p>AND ....................&& ...................<BT1> && <BT2>......... Trả về true nếu cả 2 biểu thức đều đúng</p><p>OR........................ || .........................<BT1>||<BT2> ..........Trả về true nếu 1 trong 2 biểu thức đúng</p><p>NOT ......................!................................... !(BT) ..............Trả về phủ định của biểu thức trong ngoặc</p><p></p><p><span style="font-size: 15px"><strong>Toán tử quan hệ</strong></span></p><p><span style="font-size: 15px"></span></p><p>Các toán tử quan hệ thường được dùng để so sánh giữa hai giá trị, và sau đó trả về kết quả là một giá trị logic kiểu boolean (true hoặc false).</p><p></p><p>Giả sử ta có biến x = 5 và y = 3. Các toán tử trong C# được trình bày như bản dưới đây:</p><p></p><p><strong>Toán tử</strong> ...................<strong>Ký hiệu</strong>.....................<strong>Biểu thức so sánh</strong> .................<strong>Kết quả so sánh</strong></p><p><strong></strong></p><p>So sánh bằng .............== .......................................x==5 ...................................true</p><p>Không bằng................. != ........................................x!=y ..................................true</p><p>Lớn hơn ...................... >.......................................... x>y.................................... true</p><p>Lớn hơn hay bằng .......>= ........................................x>=y ...................................true</p><p>Nhỏ hơn ......................< ............................................x<y .....................................false</p><p>Nhỏ hơn hay bằng....... <= .....................................x<=y....................................... false</p><p></p><p>Lưu ý: toán tử so sánh bằng (<em>==</em>) được ký hiệu bởi hai dấu bằng dính liền nhau và không có bất kỳ khoảng cách nào giữa chúng. Trình biên dịch C# xem đây là một toán tử.</p><p></p><p><span style="font-size: 15px"><strong>Toán tử hỗn hợp</strong></span></p><p><span style="font-size: 15px"></span></p><p>Ta có một số toán tử khác cũng khá là quan trọng và được hỗ trợ bởi ngôn ngữ C# như sau:</p><p></p><p>& :Trả về địa chỉ của một biến &x</p><p>* :Trỏ đến một biến *x</p><p>?: <Biểu thức điều kiện > ? <Biểu thức thứ 1> : <Biểu thức thứ 2></p><p>VD: x==2?x=3:x=4; nếu x bằng 2 thì gán trị mới x=3 ngược lại thì x=4</p><p>is: xác định đối tượng là một kiểu cụ thể hay không VD: if(iphone is apple) kiểm tra nếu iphone thuộc lớp apple thì...</p><p>as: Ép kiểu mà không tạo exception nếu việc ép kiểu thất bại</p><p>VD: Object obj = new StringReader("freetuts.net");</p><p> String Reader r = obj as StringReader;</p><p>typeof() trả về kiểu của một lớp.</p><p>VD: typeof(StreamReader)</p><p>sizeof() trả về kích cỡ của một kiểu dữ liệu</p><p>VD: sizeof(int), kết quả trả về là 4</p><p></p><p>Một ví dụ nhỏ tổng hợp toán tử quan hệ, toán tử logic và toán tử hỗn hợp:</p><p></p><p><em><span style="color: #5900b3">using System;</span></em></p><p><em><span style="color: #5900b3">using System.Collections.Generic;</span></em></p><p><em><span style="color: #5900b3">using System.Linq;</span></em></p><p><em><span style="color: #5900b3">using System.Text;</span></em></p><p><em><span style="color: #5900b3"></span></em></p><p><em><span style="color: #5900b3">namespace freetuts.net</span></em></p><p><em><span style="color: #5900b3">{</span></em></p><p><em><span style="color: #5900b3"> class freetuts</span></em></p><p><em><span style="color: #5900b3"> {</span></em></p><p><em><span style="color: #5900b3"> static void Main(string[] args)</span></em></p><p><em><span style="color: #5900b3"> {</span></em></p><p><em><span style="color: #5900b3"> int x = 5;</span></em></p><p><em><span style="color: #5900b3"> int y = 28;</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine((x==5&&y==28) ? "\nthoa man ca 2 dieu kien" : "\nkhong thoa man");</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("\nfreetuts chuc ban hoc tot !!!");</span></em></p><p><em><span style="color: #5900b3"> Console.ReadKey();</span></em></p><p><em><span style="color: #5900b3"> }</span></em></p><p><em><span style="color: #5900b3"> }</span></em></p><p><em><span style="color: #5900b3">}</span></em></p><p></p><p></p><p>Biên dịch chương trình ta được:</p><p></p><p><img src="https://freetuts.net/upload/tut_post/images/2017/12/14/1135/toantu2.JPG" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Ở ví dụ trên ta đã tổng hợp được các toán tử gồm: logic, quan hệ và hỗn hợp.</p><p></p><p>Đầu tiên kiểm tra x==5 && y==28 hay không nếu đúng thì trả về chuỗi <em>"thoa man ca hai dieu kien"</em> neu sai thi tra ve <em>"khong thoa man"</em>. Và dĩ nhiên ta thấy được điều kiện là đúng vậy chuỗi xuất ra màn hình sẽ là: <em>"thoa man ca hai dieu kien"</em> .</p><p></p><p><span style="font-size: 18px"><strong>2. Thứ tự ưu tiên các phép toán</strong></span></p><p></p><p>Giả sử trong trường hợp có nhiều phép toán trong một biểu thức thì trình biên dịch phải xác định thứ tự thực hiện các toán tử. Các luật về độ ưu tiên xử lý sẽ bảo trình biên dịch biết được toán tử nào được thực hiện trước trong biểu thức.</p><p></p><p>Bảng dưới đây thể hiện thứ tự, độ ưu tiên các phép toán trong C#.</p><p></p><p><strong>Loại toán tử</strong> ...........................................<strong>Toán tử</strong> ............................................<strong>Thứ tự ưu tiên</strong></p><p><strong></strong></p><p>Phép toán cơ bản .................. ..... x++ x-- typeof() sizeof() ! ++x --x ..............Trái sang phải</p><p>Phép toán cơ bản ......................................+ - * / % ...........................................Trái sang phải</p><p>Dịch bit ........................................................<< >> .............................................Trái sang phải</p><p>Quan hệ .................................................<> <= >= is ........................................Trái sang phải</p><p>So sánh bằng ...............................................== != .............................................Phải sang trái</p><p>AND .................................................................& ................................................Trái sang phải</p><p>XOR.................................................................. ^ .................................................Trái sang phải</p><p>OR..................................................................... | .................................................Trái sang phải</p><p>Điều kiện AND .................................................&& ...............................................Trái sang phải</p><p>Điều kiện OR .....................................................|| ................................................Trái sang phải</p><p>Điều kiện ...........................................................?: ................................................Phải sang trái</p><p>Phép gán .................................= *= /= %= += -= <<= >>= &= ^= |= ....................Phải sang trái</p><p></p><p>Các phép toán được liệt kê cùng loại sẽ có thứ tự theo mục thứ thự của bảng: thứ tự trái tức là độ ưu tiên của các phép toán từ bên trái sang, thứ tự phải thì các 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 thì có độ ưu tiên từ trên xuống dưới, do vậy các toán tử loại cơ bản sẽ có độ ưu tiên cao nhất và phép toán gán sẽ có độ ưu tiên thấp nhất trong các toán tử.</p><p></p><p>Trong một số trường hợp ta nên dùng ngoặc tròn () để nhóm các biểu thức nhằm quy định độ ưu tiên của các toán tử và làm cho biểu thức rõ ràng hơn.</p><p></p><p><span style="font-size: 18px"><strong>3. Ví dụ về sử dụng toán tử</strong></span></p><p></p><p>Viết chương trình nhập vào độ C và lần lượt chuyển nó qua độ K và độ F</p><p></p><p>Công thức:</p><p></p><p>K = C + 273</p><p></p><p>F = C * 18/10 +32</p><p></p><p>Bài giải</p><p></p><p><em><span style="color: #5900b3">using System;</span></em></p><p><em><span style="color: #5900b3">using System.Collections.Generic;</span></em></p><p><em><span style="color: #5900b3">using System.Linq;</span></em></p><p><em><span style="color: #5900b3">using System.Text;</span></em></p><p><em><span style="color: #5900b3"></span></em></p><p><em><span style="color: #5900b3">namespace freetuts.net</span></em></p><p><em><span style="color: #5900b3">{</span></em></p><p><em><span style="color: #5900b3"> class freetuts</span></em></p><p><em><span style="color: #5900b3"> {</span></em></p><p><em><span style="color: #5900b3"> static void Main(string[] args)</span></em></p><p><em><span style="color: #5900b3"> {</span></em></p><p><em><span style="color: #5900b3"> Console.Write("Nhap do C: ");</span></em></p><p><em><span style="color: #5900b3"> int celsius = Convert.ToInt32(Console.ReadLine());</span></em></p><p><em><span style="color: #5900b3"> int K = celsius + 273;</span></em></p><p><em><span style="color: #5900b3"> int F = celsius * 18 / 10 + 32;</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("Do K tuong ung la = {0}", K );</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("Do F tuong ung la = {0}", F);</span></em></p><p><em><span style="color: #5900b3"> Console.WriteLine("Freetuts.net chuc ban hoc tot");</span></em></p><p><em><span style="color: #5900b3"> Console.ReadKey();</span></em></p><p><em><span style="color: #5900b3"> }</span></em></p><p><em><span style="color: #5900b3"> }</span></em></p><p><em><span style="color: #5900b3">}</span></em></p><p> Chạy chương trình và cho kết quả:</p><p></p><p><img src="https://freetuts.net/upload/tut_post/images/2017/12/14/1135/toantu.PNG" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p><p></p><p>Chúc các bạn ngày làm việc hiệu quả!</p><p></p><p>Nguồn: Freetuts.net</p></blockquote><p></p>
[QUOTE="uocmo_kchodoi, post: 177487, member: 165510"] Tiếp theo trong series bài giảng về C# chúng ta sẽ đi tìm hiểu về toán tử trong C#. Người ta sử dụng các toán tử để thực hiện phép tính trên biến và giá trị. [SIZE=5][B]1. Toán tử ([I]Operator[/I]) trong C#[/B] [/SIZE] Đối với C# có nhiều loại toán tử được cung cấp sẵn: [SIZE=4][B]Toán tử số học[/B] [/SIZE] Các toán tử số học thường được sử dụng cùng với các giá trị số để thực hiện các phép toán số học như: cộng, trừ, nhân, chia lấy phần nguyên, chia lấy phần dư,... Các phép toán này không thể thiếu trong mọi ngôn ngữ lập trình nào và C# cũng vậy. Giả sử ta có hai biến [I]x[/I] và [I]y[/I]. Bảng sau đây miêu tả kết quả về của hai biến [I]x[/I] và [I]y[/I]: [B]Toán tử[/B] ----------------- [B]Tên ---------------- Ví dụ --------------------[/B] [B]Kết quả[/B] .......+ ...........................Cộng..................... x+y ..........................Tổng của x và y ....... - ............................ Trừ .......................x-y ..........................Hiệu của x và y .......* .............................Tích .......................x*y.......................... Tích của x và y ......./........................... ..Chia....................... x/y ..........................Phần nguyên của thương x chia y ......% .........................Chia dư ...................x%y ..........................Phần dư của thương x chia y Lưu ý: Khi chia số thực có kiểu như [I]float, double[/I] hay [I]decimal [/I]thì kết quả chia được là một số thực. Giả sử x = 5 và y = 28 ta có ví dụ sau: [I][COLOR=#5900b3]using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace freetuts.net { class freetuts { static void Main(string[] args) { int x = 5; int y = 28; Console.WriteLine("\nTong cua hai so y+x = "+(x+y)); Console.WriteLine("\nhieu cua hai so y-x = "+(y-x)); Console.WriteLine("\nTich cua hai so y*x = "+y*x); Console.WriteLine("\nthuong cua hai so y/x = "+y/x); Console.WriteLine("\nPhan du cua thuong y/x = "+y%x); Console.WriteLine("\nfreetuts chuc ban hoc tot !!!"); Console.ReadKey(); } } }[/COLOR][/I] Sau khi biên dịch ta được: [IMG]https://freetuts.net/upload/tut_post/images/2017/12/14/1135/const_1.JPG[/IMG] [SIZE=4][B]Toán tử gán[/B] [/SIZE] Mình nghĩ toán tử gán đã khá quen thuộc với chúng ta, hầu hết các chương trình ví dụ trong series chúng ta đều có sử dụng phép gán. Toán tử 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. Theo mình thì đây là dạng toán tử đơn giản và thông dụng nhất. Chúng ta có một số toán tử gán được sử dụng trong C#: [B]Toán tử............................................[/B] [B]Ví dụ......................................[/B] [B]Kết quả[/B] .....=.................................................... x=y ........................................Gán giá trị y cho x ....+=.................................................. x+=y ......................................Gán giá trị x = x+y ....-= ....................................................x-=y .......................................Gán giá trị x = x-y ....*= ...................................................x*=y ........................................Gán giá trị x = x*y ..../= ....................................................x/=y ........................................Gán giá trị x = x/y ....%= .................................................x%=y....................................... Gán giá trị x = x%y ...<<=................................................ x<<=3 .......................................Gán giá trị x = x<<3 ....>>=............................................... x>>=3 .......................................Gán giá trị x = x>>3 .....&=................................................. x&=2 .................................Gán giá trị x = x&2 ([I]Phép AND bit[/I]) .....^= ..................................................x^=2........................... Gán giá trị x = x^2 ([I]Phép OR loại trừ bit[/I]) .....|= ...................................................x|=2.................................. Gán giá trị x = x|2 ([I]Phép OR bit[/I]) [SIZE=3] [I][COLOR=#8000ff]using System;[/COLOR][/I] [I][COLOR=#8000ff]using System.Collections.Generic;[/COLOR][/I] [I][COLOR=#8000ff]using System.Linq;[/COLOR][/I] [I][COLOR=#8000ff]using System.Text;[/COLOR][/I] [I][COLOR=#8000ff]namespace freetuts.net[/COLOR][/I] [I][COLOR=#8000ff]{[/COLOR][/I] [I][COLOR=#8000ff] class freetuts[/COLOR][/I] [I][COLOR=#8000ff] {[/COLOR][/I] [I][COLOR=#8000ff] static void Main(string[] args)[/COLOR][/I] [I][COLOR=#8000ff] {[/COLOR][/I] [I][COLOR=#8000ff] int x = 5;[/COLOR][/I] [I][COLOR=#8000ff] int y = 28;[/COLOR][/I] [I][COLOR=#8000ff] Console.WriteLine("\nx = "+x);[/COLOR][/I] [I][COLOR=#8000ff] Console.WriteLine("\ny = "+y);[/COLOR][/I] [I][COLOR=#8000ff] y += x;[/COLOR][/I] [I][COLOR=#8000ff] Console.WriteLine("\ny= y + x = "+y);[/COLOR][/I] [I][COLOR=#8000ff] y -= x;[/COLOR][/I] [I][COLOR=#8000ff] Console.WriteLine("\ny= y - x = " + y);[/COLOR][/I] [I][COLOR=#8000ff] y *= x;[/COLOR][/I] [I][COLOR=#8000ff] Console.WriteLine("\ny= y * x = " + y);[/COLOR][/I] [I][COLOR=#8000ff] y /= x;[/COLOR][/I] [I][COLOR=#8000ff] Console.WriteLine("\ny= y / x = " + y);[/COLOR][/I] [I][COLOR=#8000ff] y %= x;[/COLOR][/I] [I][COLOR=#8000ff] Console.WriteLine("\ny= y % x = " + y);[/COLOR][/I] [I][COLOR=#8000ff] [/COLOR][/I] [I][COLOR=#8000ff] Console.WriteLine("\nfreetuts chuc ban hoc tot !!!");[/COLOR][/I] [I][COLOR=#8000ff] Console.ReadKey();[/COLOR][/I] [I][COLOR=#8000ff] }[/COLOR][/I] [I][COLOR=#8000ff] }[/COLOR][/I] [I][COLOR=#8000ff]}[/COLOR][/I][/SIZE] Kết quả sau khi biên dịch chương trình: [IMG]https://freetuts.net/upload/tut_post/images/2017/12/14/1135/toantu1.JPG[/IMG] Ta dễ dàng thấy giá trị của y thay đổi sau mỗi lần gán trị. [SIZE=3][B]Toán tử tăng giảm tiền tố và hậu tố:[/B] [/SIZE] Giả sử ta muốn tăng giá trị của một biến x rồi gán nó cho biến y, ta làm như sau: y = x++; hoặc y = ++x; Vậy đâu là điểm khác biệt giữa 2 cú pháp trên ? Giả sử cho giá trị của biến x = 9 ta cùng đi phân tích nhé. Khi lệnh y = x++; được thực hiện thì phép gán sẽ được thực hiện trước tiên và sau đó mới đến phép toán tăng. Ta gọi đây là tăng hậu tố, và giá trị của các biến bây giờ là x = 10 và y = 9. Còn đối với lệnh y = ++x; phép toán tăng sẽ được thực hiện trước rồi mới đến toán tử gán. Ta gọi đây là tăng tiền tố, các giá trị của x và y bây giờ là như nhau và đều bằng 10. Tương tự với giảm hậu tố hay giảm tiền tố cũng như vậy nhé. [SIZE=4][B]Toán tử logic[/B][/SIZE] Đôi lúc chúng ta muốn kết hợp nhiều điều kiện với nhau ví dụ như bắt buộc cả hai biểu thức điều kiện đều đúng hoặc chỉ cần một biểu thức đúng thì mới thực hiện một lệnh gì đó. Trong C# hỗ trợ 3 toán tử logic như sau: [B]Toán tử[/B] ............[B]Ký hiệu...................[/B] [B]Cú pháp........................[/B] [B]miêu tả [/B] AND ....................&& ...................<BT1> && <BT2>......... Trả về true nếu cả 2 biểu thức đều đúng OR........................ || .........................<BT1>||<BT2> ..........Trả về true nếu 1 trong 2 biểu thức đúng NOT ......................!................................... !(BT) ..............Trả về phủ định của biểu thức trong ngoặc [SIZE=4][B]Toán tử quan hệ[/B] [/SIZE] Các toán tử quan hệ thường được dùng để so sánh giữa hai giá trị, và sau đó trả về kết quả là một giá trị logic kiểu boolean (true hoặc false). Giả sử ta có biến x = 5 và y = 3. Các toán tử trong C# được trình bày như bản dưới đây: [B]Toán tử[/B] ...................[B]Ký hiệu[/B].....................[B]Biểu thức so sánh[/B] .................[B]Kết quả so sánh [/B] So sánh bằng .............== .......................................x==5 ...................................true Không bằng................. != ........................................x!=y ..................................true Lớn hơn ...................... >.......................................... x>y.................................... true Lớn hơn hay bằng .......>= ........................................x>=y ...................................true Nhỏ hơn ......................< ............................................x<y .....................................false Nhỏ hơn hay bằng....... <= .....................................x<=y....................................... false Lưu ý: toán tử so sánh bằng ([I]==[/I]) được ký hiệu bởi hai dấu bằng dính liền nhau và không có bất kỳ khoảng cách nào giữa chúng. Trình biên dịch C# xem đây là một toán tử. [SIZE=4][B]Toán tử hỗn hợp[/B] [/SIZE] Ta có một số toán tử khác cũng khá là quan trọng và được hỗ trợ bởi ngôn ngữ C# như sau: & :Trả về địa chỉ của một biến &x * :Trỏ đến một biến *x ?: <Biểu thức điều kiện > ? <Biểu thức thứ 1> : <Biểu thức thứ 2> VD: x==2?x=3:x=4; nếu x bằng 2 thì gán trị mới x=3 ngược lại thì x=4 is: xác định đối tượng là một kiểu cụ thể hay không VD: if(iphone is apple) kiểm tra nếu iphone thuộc lớp apple thì... as: Ép kiểu mà không tạo exception nếu việc ép kiểu thất bại VD: Object obj = new StringReader("freetuts.net"); String Reader r = obj as StringReader; typeof() trả về kiểu của một lớp. VD: typeof(StreamReader) sizeof() trả về kích cỡ của một kiểu dữ liệu VD: sizeof(int), kết quả trả về là 4 Một ví dụ nhỏ tổng hợp toán tử quan hệ, toán tử logic và toán tử hỗn hợp: [I][COLOR=#5900b3]using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace freetuts.net { class freetuts { static void Main(string[] args) { int x = 5; int y = 28; Console.WriteLine((x==5&&y==28) ? "\nthoa man ca 2 dieu kien" : "\nkhong thoa man"); Console.WriteLine("\nfreetuts chuc ban hoc tot !!!"); Console.ReadKey(); } } }[/COLOR][/I] Biên dịch chương trình ta được: [IMG]https://freetuts.net/upload/tut_post/images/2017/12/14/1135/toantu2.JPG[/IMG] Ở ví dụ trên ta đã tổng hợp được các toán tử gồm: logic, quan hệ và hỗn hợp. Đầu tiên kiểm tra x==5 && y==28 hay không nếu đúng thì trả về chuỗi [I]"thoa man ca hai dieu kien"[/I] neu sai thi tra ve [I]"khong thoa man"[/I]. Và dĩ nhiên ta thấy được điều kiện là đúng vậy chuỗi xuất ra màn hình sẽ là: [I]"thoa man ca hai dieu kien"[/I] . [SIZE=5][B]2. Thứ tự ưu tiên các phép toán[/B][/SIZE] Giả sử trong trường hợp có nhiều phép toán trong một biểu thức thì trình biên dịch phải xác định thứ tự thực hiện các toán tử. Các luật về độ ưu tiên xử lý sẽ bảo trình biên dịch biết được toán tử nào được thực hiện trước trong biểu thức. Bảng dưới đây thể hiện thứ tự, độ ưu tiên các phép toán trong C#. [B]Loại toán tử[/B] ...........................................[B]Toán tử[/B] ............................................[B]Thứ tự ưu tiên [/B] Phép toán cơ bản .................. ..... x++ x-- typeof() sizeof() ! ++x --x ..............Trái sang phải Phép toán cơ bản ......................................+ - * / % ...........................................Trái sang phải Dịch bit ........................................................<< >> .............................................Trái sang phải Quan hệ .................................................<> <= >= is ........................................Trái sang phải So sánh bằng ...............................................== != .............................................Phải sang trái AND .................................................................& ................................................Trái sang phải XOR.................................................................. ^ .................................................Trái sang phải OR..................................................................... | .................................................Trái sang phải Điều kiện AND .................................................&& ...............................................Trái sang phải Điều kiện OR .....................................................|| ................................................Trái sang phải Điều kiện ...........................................................?: ................................................Phải sang trái Phép gán .................................= *= /= %= += -= <<= >>= &= ^= |= ....................Phải sang trái Các phép toán được liệt kê cùng loại sẽ có thứ tự theo mục thứ thự của bảng: thứ tự trái tức là độ ưu tiên của các phép toán từ bên trái sang, thứ tự phải thì các 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 thì có độ ưu tiên từ trên xuống dưới, do vậy các toán tử loại cơ bản sẽ có độ ưu tiên cao nhất và phép toán gán sẽ có độ ưu tiên thấp nhất trong các toán tử. Trong một số trường hợp ta nên dùng ngoặc tròn () để nhóm các biểu thức nhằm quy định độ ưu tiên của các toán tử và làm cho biểu thức rõ ràng hơn. [SIZE=5][B]3. Ví dụ về sử dụng toán tử[/B][/SIZE] Viết chương trình nhập vào độ C và lần lượt chuyển nó qua độ K và độ F Công thức: K = C + 273 F = C * 18/10 +32 Bài giải [I][COLOR=#5900b3]using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace freetuts.net { class freetuts { static void Main(string[] args) { Console.Write("Nhap do C: "); int celsius = Convert.ToInt32(Console.ReadLine()); int K = celsius + 273; int F = celsius * 18 / 10 + 32; Console.WriteLine("Do K tuong ung la = {0}", K ); Console.WriteLine("Do F tuong ung la = {0}", F); Console.WriteLine("Freetuts.net chuc ban hoc tot"); Console.ReadKey(); } } }[/COLOR][/I] Chạy chương trình và cho kết quả: [IMG]https://freetuts.net/upload/tut_post/images/2017/12/14/1135/toantu.PNG[/IMG] Chúc các bạn ngày làm việc hiệu quả! Nguồn: Freetuts.net [/QUOTE]
Tên
Mã xác nhận
Gửi trả lời
CÔNG NGHỆ
Công Nghệ Thông Tin
Code
Toán tử trong C#
Top