c# - ตัวดำเนินการ Operators, ชนิดข้อมูล Types, และตัวแปร Variables
C# Operators, Types, and Variables
วัตถุประสงค์ของบทความนี้นะครับ
- เข้าใจว่าตัวแปรคืออะไร
- ชนิดของตัวแปรคืออะไร
- ตัวดำเนินการคืออะไร
ตัวแปรเป็นภาชนะเก็บข้อมูล คุณสามารถใส่ข้อมูลลงไปในตัวแปรและสามารถเรียกใช้ข้อมูลนั้นผ่านตัวแปรเมื่อต้องการ ความหมายของข้อมูลในตัวแปรนั้นจะถูกระบุได้จาก ชนิดข้อมูลของตัวแปร
1. ข้อมูลชนิดตรรกะ The Boolean Type
การประกาศตัวแปร boolean จะใช้คำว่า bool ซึ่งจะเก็บค่าเพียง 2 ค่าเท่านั้นคือ true , false ในภาษาอื่น เช่น ภาษา C, C++ สามารถใช้เลข 0 แทน false และเลข 1 แทน true ได้ ในภาษา C# จะไม่ได้ ในตัวอย่างที่ 1 เป็นการยกตัวอย่างการใช้เขียนโปรแกรม
ตัวอย่างที่ 1 แสดงค่าใน Boolean
using System; class Booleans { public static void Main() { bool content = true; bool noContent = false; Console.WriteLine("It is {0} that C# Station provides C# programming language content.", content); Console.WriteLine("The statement above is not {0}.", noContent); } }
ผลลัพธ์
It is True that C# Station provides C# programming language content. The statement above is not False.
2. ชนิดข้อมูลตัวเลข Integral Types
ในภาษา C# Integral Types เป็นหมวดของชนิดข้อมูลที่เป็นตัวเลขจำนวนเต็ม ทั้ง signed, unsigned, และข้อมูลตัวอักษร (char) ซึ่ง char เป็น Unicode character หาอ่านได้่ที่ http://www.unicode.org/
Type | Size (in bits) | Range |
---|---|---|
sbyte | 8 | -128 to 127 |
byte | 8 | 0 to 255 |
short | 16 | -32768 to 32767 |
ushort | 16 | 0 to 65535 |
int | 32 | -2147483648 to 2147483647 |
uint | 32 | 0 to 4294967295 |
long | 64 | -9223372036854775808 to 9223372036854775807 |
ulong | 64 | 0 to 18446744073709551615 |
char | 16 | 0 to 65535 |
ชนิดข้อมูลตัวเลขชุดนี้สามารถนำมาคำนวณทางคณิตศาสตร์ ยกเว้น Char คุณสามารถเลือกใช้ชนิดข้อมูลจากตารางข้างบนนี้ตามความเหมาะสมโดยพิารณาจากค่า Range ให้เหมาะสมกับโปรแกรมของคุณ
ตัวอย่างที่ 2 โปรแกรมจะ number1 และ number2 มาบวกกัน
ตัวอย่างที่ 2 โปรแกรมจะ number1 และ number2 มาบวกกัน
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int number1, number2; Console.WriteLine("Please enter a number:"); number1 = int.Parse(Console.ReadLine()); Console.WriteLine("Thank you. One more:"); number2 = int.Parse(Console.ReadLine()); Console.WriteLine("Adding the two numbers: " + (number1 + number2)); Console.ReadLine(); } } }
3.ชนิดข้อมูลเลขทศนิยม Floating Point and Decimal Types
Type | Size (in bits) | precision | Range |
---|---|---|---|
float | 32 | 7 digits | 1.5 x 10-45 to 3.4 x 1038 |
double | 64 | 15-16 digits | 5.0 x 10-324 to 1.7 x 10308 |
decimal | 128 | 28-29 decimal places | 1.0 x 10-28 to 7.9 x 1028 |
การใช้ชนิดข้อมูลทศนิยม ( Floating Point ) เรามันใช้เมื่อมีการหารหรือคำนวณเศษส่วนที่ค่าไม่ลงตัว ส่วนการคำนวณทางการเงิน decimal เป็นทางเลือกที่ดีที่สุด เพราะว่าเราสามารถหลีกเลี่ยงปัญหา rounding errors ได้
4. ข้อความ The string Type
String เป็นกลุ่มของ Char ที่เรียงต่อกันเป็นข้อความ ตัวอักษรบางตัวพิมพ์ออกหน้าจอไม่ได้ แต่เรายังต้องการใช้มัน เพราะฉะนั้นในภาษา C# จึงมีกรณีพิเศษเมื่อต้องการใช้อักษรเหล่่านั้นโดยการใช้เครื่องหมาย '\'
String เป็นกลุ่มของ Char ที่เรียงต่อกันเป็นข้อความ ตัวอักษรบางตัวพิมพ์ออกหน้าจอไม่ได้ แต่เรายังต้องการใช้มัน เพราะฉะนั้นในภาษา C# จึงมีกรณีพิเศษเมื่อต้องการใช้อักษรเหล่่านั้นโดยการใช้เครื่องหมาย '\'
Escape Sequence | Meaning |
---|---|
\' | Single Quote |
\" | Double Quote |
\\ | Backslash |
\0 | Null, not the same as the C# null value |
\a | Bell |
\b | Backspace |
\f | form Feed |
\n | Newline |
\r | Carriage Return |
\t | Horizontal Tab |
\v | Vertical Tab |
ตัวอย่างที่ 3 การประกาศตัวแปร string และการใช้งานเบื้องต้น
โปรแกรมจะแสดงชื่อและนามสกุลตามที่ประไว้ในตัวแปรชื่อ firstName และ lastName จากนั้นโปรแกรมจะรับชื่อและนามสกุลใหม่อีกครั้งและแสดงชื่อนามสกุลใหม่
5. ตัวดำเนินการ C# Operators
โปรแกรมจะแสดงชื่อและนามสกุลตามที่ประไว้ในตัวแปรชื่อ firstName และ lastName จากนั้นโปรแกรมจะรับชื่อและนามสกุลใหม่อีกครั้งและแสดงชื่อนามสกุลใหม่
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string firstName = "John"; string lastName = "Doe"; Console.WriteLine("Name: " + firstName + " " + lastName); Console.WriteLine("Please enter a new first name:"); firstName = Console.ReadLine(); Console.WriteLine("New name: " + firstName + " " + lastName); Console.ReadLine(); } } }
5. ตัวดำเนินการ C# Operators
เครื่องหมายในการคำนวณทางคณิตศาสตร์ต่างๆ ทั้งบวก ลบ คูณ หาร ตรรกะ ซึ่งจะต้องใช้ร่วมกับตัวแปรเพื่อหาผลลัพธ์ของสมการซึ่งแสดงตามตารางด้านล่างนี้แล้ว
Category (by precedence) | Operator(s) | Associativity |
---|---|---|
Primary | x.y f(x) a[x] x++ x-- new typeof default checked unchecked delegate | left |
Unary | + - ! ~ ++x --x (T)x | right |
Multiplicative | * / % | left |
Additive | + - | left |
Shift | << >> | left |
Relational | < > <= >= is as | left |
Equality | == != | right |
Logical AND | & | left |
Logical XOR | ^ | left |
Logical OR | | | left |
Conditional AND | && | left |
Conditional OR | || | left |
Null Coalescing | ?? | left |
Ternary | ?: | right |
Assignment | = *= /= %= += -= <<= >>= &= ^= |= => | right |
ตัวอย่างโปรแกรมการใช้ operators ต่างๆ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | using System; class Unary { public static void Main() { int unary = 0; int preIncrement; int preDecrement; int postIncrement; int postDecrement; int positive; int negative; sbyte bitNot; bool logNot; preIncrement = ++unary; Console.WriteLine("pre-Increment: {0}", preIncrement); preDecrement = --unary; Console.WriteLine("pre-Decrement: {0}", preDecrement); postDecrement = unary--; Console.WriteLine("Post-Decrement: {0}", postDecrement); postIncrement = unary++; Console.WriteLine("Post-Increment: {0}", postIncrement); Console.WriteLine("Final Value of Unary: {0}", unary); positive = -postIncrement; Console.WriteLine("Positive: {0}", positive); negative = +postIncrement; Console.WriteLine("Negative: {0}", negative); bitNot = 0; bitNot = (sbyte)(~bitNot); Console.WriteLine("Bitwise Not: {0}", bitNot); logNot = false; logNot = !logNot; Console.WriteLine("Logical Not: {0}", logNot); } } |
อธิบายโปรแกรม
17 preIncrement = ++unary;
20 preDecrement = --unary;
23 postDecrement = unary--;
26 postIncrement = unary++;
31 positive = -postIncrement; 32 Console.WriteLine("Positive: {0}", positive); 33 34 negative = +postIncrement; 35 Console.WriteLine("Negative: {0}", negative);
ซึ่งในบรรทัด 31 postIncrement = -1 ; -(-1) = 1
และบรรทัด 34 postIncrement = -1 ; +(-1) = -1
37 bitNot = 0; 38 bitNot = (sbyte)(~bitNot); 39 Console.WriteLine("Bitwise Not: {0}", bitNot);
41 logNot = false; 42 logNot = !logNot; 43 Console.WriteLine("Logical Not: {0}", logNot);
ผลลัพธ์ที่ได้
pre-Increment: 1 pre-Decrement 0 Post-Decrement: 0 Post-Increment: -1 Final Value of Unary: 0 Positive: 1 Negative: -1 Bitwise Not: -1 Logical Not: true
ตัวอย่างสุดท้าย
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | using System; class Binary { public static void Main() { int x, y, result; float floatresult; x = 7; y = 5; result = x+y; // 7 + 5 = 12 Console.WriteLine("x+y: {0}", result); result = x-y; // 7 - 5 = 2 Console.WriteLine("x-y: {0}", result); result = x*y; // 7 * 5 = 35 Console.WriteLine("x*y: {0}", result); result = x/y; // 7 / 5 = 1 เพราะเป็นจำนวนเต็มหารจำนวนเต็ม = จำนวนเต็ม Console.WriteLine("x/y: {0}", result); floatresult = (float)x/(float)y; // 7 / 5 = 1.4 Console.WriteLine("x/y: {0}", floatresult); result = x%y; // 7 % 5 = 2 เป็นการหารแล้วเอาเศษ 7 / 5 = 1 เศษ 2 Console.WriteLine("x%y: {0}", result); result += x; //หมายถึง result = result + x ;ดังนั้นจะได้ result = 2 + 7 = 9 Console.WriteLine("result+=x: {0}", result); } } |
ผลลัพธ์ที่ได้
x+y: 12 x-y: 2 x*y: 35 x/y: 1 x/y: 1.4 x%y: 2 result+=x: 9