CHƯƠNG 2
Những cơ sở của ngôn ngữ
C#
Nội dung chính
Các kiểu
Câu lệnh
Tốn tử
1. Các kiểu
Loại dữ liệu định sẵn
Kiểu
Kích thước
(byte)
Kiểu .Net
Mơ tả - giá trị
byte
1
Byte
Khơng dấu (0..255)
char
1
Char
Mã ký thự Unicode
bool
1
Boolean
true hay false
sbyte
1
Sbyte
Có dấu (-128 .. 127)
short
2
Int16
Có dấu (-32768 .. 32767)
ushort
2
Uint16
Khơng dấu (0 .. 65535)
int
4
Int32
Có dấu (-2147483647 .. 2147483647)
uint
4
Uint32
Khơng dấu (0 .. 4294967295)
float
4
Single
Số thực (≈ ±1.5*10-45 .. ≈ ±3.4*1038)
double
8
Double
Số thực (≈ ±5.0*10-324 .. ≈ ±1.7*10308)
decimal
8
Decimal
số có dấu chấm tĩnh với 28 ký số và dấu chấm
long
8
Int64
Số nguyên có dấu (- 9223372036854775808 .. 9223372036854775807)
ulong
8
Uint64
Số nguyên không dấu (0 .. 0xffffffffffffffff.)
Các ký tự đặc biệt thông
dụng
Ký tự
Nghĩa
\’
Dấu nháy đơn
\”
dấu nháy đơi
\\
dấu chéo ngược “\”
\0
Null
\a
Alert
\b
lùi về sau
\f
Form feed
\n
xuống dịng
\r
về đầu dịng
\t
Tab ngang
\v
Tab dọc
Chuyển đổi kiểu định sẵn
short x = 5;
int y ;
y = x; // chuyển kiểu ngầm định - tự động
x = y; // lỗi, không biên dịch được
x = (short) y; // OK
Biến và hằng
Biến
Phải khai báo biến trước khi sử dụng
Có thể khai báo biến ở mọi nơi trong chương
trình
Tên biến
Phân biệt chữ hoa, chữ thường
Sử dụng các ký tự từ a-z, 0-9 và dấu “_”
Ví dụ:
int var1;
int var2=10;
Biến và hằng
Hằng
Hằng là một biến nhưng giá trị không thay
đổi theo thời gian. Khi cần thao tác trên một
giá trị xác định ta dùng hằng. Khai báo hằng
tương tự khai báo biến và có thêm từ khóa
const ở trước. Hằng một khi khởi động xong
không thể thay đổi được nữa.
const int HANG_SO = 100;
Biến và hằng
Định danh
Định danh là tên mà người lập trình chọn đại diện một kiểu,
phương thức, biến, hằng, đối tượng… của họ. Định danh phải
bắt đầu bằng một ký tự hay dấu “_”. Định danh không được
trùng với từ khố C# và phân biệt hoa thường.
Biểu thức
ví dụ: x = 32; hay y = x = 32;
Khoảng trắng
Trong C#, khoảng trống, dấu tab, dấu xuống dòng đều được
xem là khoảng trắng (whitespace). Do đó, dấu cách dù lớn
hay nhỏ đều như nhau nên ta có:
x = 32;
cũng như
x
=
32;
Ngoại trừ khoảng trắng trong chuỗi ký tự thì có ý nghĩa
riêng của nó.
3. Câu lệnh
Câu lệnh kết thúc bằng dấu “;”.
Ví dụ:
int x; // là một câu lệnh
x = 23; // một câu lệnh khác
Các câu lệnh
Rẽ nhánh
Các lệnh rẽ nhánh không điều kiện
Lệnh rẽ nhánh có điều kiện
Lệnh If .. else …
Lệnh switch
Vịng lặp
Lệnh goto
Vòng lặp while
Vòng lặp do … while
Vòng lặp for
Rẽ nhánh khơng điều kiện
Ví dụ 3‑3 Gọi một phương thức
using System;
class Functions
{
static void Main( )
{
Console.WriteLine("In Main! Calling SomeMethod( )...");
SomeMethod( );
Console.WriteLine("Back in Main( ).");
}
static void SomeMethod( )
{
Console.WriteLine("Greetings from SomeMethod!");
}
}
Kết quả:
In Main! Calling SomeMethod( )...
Greetings from SomeMethod!
Back in Main( ).
Lệnh rẽ nhánh có điều
kiện
If … Else
Phụ thuộc vào điều kiện
kiểm tra là true hay false
để quyết định nhánh thực
hiện
Ví dụ:
using System;
class vidu
{
static void Main()
{
Console.WriteLine("Nhap mot so:\n");
int n =
Convert.ToInt16(Console.ReadLine());
if (n > 100)
Console.WriteLine("lon hơn 100");
else
Console.WriteLine("nho hon hoac bang
100");
Console.ReadLine();
}
}
If … Else
if ( n > 100)
{
…
}
else
{
…
}
test expression
test
expression
false
true
body of if
exit
body of else
Lệnh switch
• Lệnh switch được sử dụng khi có nhiều nhánh rẽ
phụ thuộc vào giá trị của cùng một biến.
Cú pháp:
switch ( biểu_thức_lựa_chọn )
{
case biểu_thức_hằng :
khối lệnh;
lệnh nhảy;
[ default :
khối lệnh;
lệnh nhảy; ]
}
Lệnh switch ...
using System;
class vidu
{
static void Main()
{
char c;
Console.Write("Enter your choice (a/b/c) : ");
c=char.Parse(Console.ReadLine());
switch (c)
{
case 'a':
Console.WriteLine("You picked a!");
break;
case 'b':
Console.WriteLine("You picked b!");
break;
case 'c':
Console.WriteLine("You picked c!");
break;
default:
Console.WriteLine("You picked d!");
break;
}
Console.ReadLine();
} }
Lệnh switch ...
variable
equals
const 1
true
first case body
false
variable
equals
const 2
false
true
second case body
default body
exit
Vịng lặp while
•Vịng lặp while được sử dụng khi khơng biết trước số lần lặp.
•Lặp cho đến khi biểu thức kiểm tra vẫn có giá trị True.
•Ví dụ:
using System;
class vidu
{
static void Main()
{
char c='n';
while ( c != 'y')
{
Console.Write("Do you want to continue: (y/n)'");
c = char.Parse(Console.ReadLine());
}
}
}
Vòng lặp while ...
test expression
while ( c != ’y’ )
{
…
}
test
expression
true
body of loop
false
exit
Vịng lặp do
• Trong vịng lặp do, biểu thức kiểm tra được
đánh giá ở cuối vịng lặp.
•Thân vịng lặp được thực hiện ít nhất một lần.
•Ví dụ:
char c='n';
do
{
Console.Write("Do you want to continue: (y/n)”);
c = char.Parse(Console.ReadLine());
}
while (c != 'y');
Vòng lặp do ...
do
{ …}
while ( c != ’y’ );
test expression
body of loop
test
expression
true
false
exit
Vòng lặp for ...
using System;
class vidu
{
static void Main()
{
int i; Console.Write("Vong lap 1 lenh");
for (i=1; i<=15; i++) // thân vòng lặp for có 1 lệnh
Console.WriteLine("{0}*{1}={2}",i,i,i*i);
Console.ReadLine(); Console.WriteLine("Vong lap nhieu
lenh");
int tong; tong=0;
for (i=1; i<=15; i++) // thân vịng lặp for có nhiều lệnh
{
Console.Write("Tong hien hanh là:{0}+{1}", tong,i);
tong=tong+i;
Console.WriteLine("={0}", tong);
}
Console.ReadLine();
Vòng lặp for
for ( i=0; i<15; i++ )
Biểu thức khởi tạo Biểu thức kiểm traBiểu thức tăng
initialization
expression
test
expression
true
body of loop
increment
expression
false
exit
Tốn tử trong C#
Nhóm tốn tử
Tốn tử
Ý nghĩa
Tốn học
+ - * / %
cộng , trừ, nhân chia, lấy phần dư
Logic
& | ^ ! ~ && ||
true false
phép toán logic và thao tác trên bit
Ghép chuỗi
+
ghép nối 2 chuỗi
Tăng, giảm
++, --
tăng / giảm toán hạng lên / xuống 1.
Đứng trước hoặc sau toán hạng.
Dịch bit
<< >>
dịch trái, dịch phải
Quan hệ
== != < > <= >=
bằng, khác, nhỏ/lớn hơn, nhỏ/lớn hơn
hoặc bằng
Gán
= += -= *= /= %= &=
|= ^= <<= >>=
phép gán
Chỉ số
[]
cách truy xuất phần tử của mảng
Ép kiểu
()
Indirection và
Address
* -> [] &
dùng cho con trỏ