Tải bản đầy đủ (.ppt) (21 trang)

Bài giảng ngôn ngữ c chương 3 trần văn tèo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (620.28 KB, 21 trang )

Ngôn ngữ C#
Trần Văn Tèo


01/06/2006

Ngôn ngữ C#

1


Chương 2: Căn bản Ngôn ngữ C#









Kiểu dữ liệu (Type).
Biến (Variable) và Hằng (Constant).
Biểu thức (Expression)
Whitespace
Các câu lệnh (Statements).
Các toán tử (Operators).
Namespace
Các chỉ thị tiền xử lý (Preprocessor Directives)

01/06/2006



Ngôn ngữ C#

2


Kiểu dữ liệu (Type).







C# là một ngôn ngữ kiểm soát chặt chẽ về mặt kiểu dữ liệu.
Hai nhóm kiểu dữ liệu: bẩm sinh (build-in), tự tạo (userdefined).
Hai loại kiểu dữ liệu: kiểu trị (value-type), kiểu qui chiếu
(reference type).
Dữ liệu được lưu trên stack hoặc heap tùy vào đặc thù của
kiểu dữ liệu.

01/06/2006

Ngôn ngữ C#

3


Kiểu dữ liệu (Type).
Type


Size
(bytes)

.NET type

Description

byte

1

Byte

Unsigned (trị 0-255).

char

2

Char

Unicode ký tự.

bool

1

Boolean


True or false.

sbyte

1

Sbyte

Signed (trị -128 to 127).

short

2

Int16

Signed (short) (trị -32,768 to 32,767).

ushort

2

UInt16

Unsigned (short) (trị 0 to 65,535).

int

4


Int32

Số nguyên có dấu (signed). Trị từ -2,147,483,648
đến 2,147,483,647.

uint

4

UInt32

Số nguyên không dấu (Unsigned). Trị từ 0 đến
4,294,967,295.

float

4

Single

3.4 x 1038 với 7 số có ý nghĩa.

double

8

Double

1.8 x 10308 với 15-16 số có ý nghĩa.


01/06/2006

Ngôn ngữ C#

4


Kiểu dữ liệu (Type).
decim
al

16

Decimal

Lên đến 28 số và vị trí dấu chấm thập phân. Thường dùng
trong tính toán tài chính. Yêu cầu có hậu tố (suffix) là
"m" hoặc "M.".

long

8

Int64

Số nguyên có dấu, trị từ -9,223,372,036,854,775,808 đến
9,223,372,036,854,775,807.

ulong


8

UInt64

Số nguyên không dấu, trị từ 0 đến 0xffffffffffffffff.

Object

Kiểu dữ liệu object dựa trên System.Object của .NET
Framework. Bạn có thể gán trị thuộc bất cứ kiểu dữ liệu
nào lên biến kiểu object. Thuộc kiểu qui chiếu.

String

Kiểu string tượng trưng cho một chuổi ký tự Unicode. string
là một alias đối với System.String trên .NET Framework.
Thuộc kiểu qui chiếu.

object

string

01/06/2006

Ngôn ngữ C#

5


Chuyển đổi kiểu dữ liệu.

Hai cách chuyển đổi: ngầm (implicit), tường minh (explicit).
Chuyển đổi ngầm (implicit):






Chuyển đổi ngầm sẽ tự động được thực hiện và bảo đảm không mất
thông tin.
Ví dụ: short x = 5;
int y = x;

Chuyển đổi tường minh (explicit).







01/06/2006

Có những chuyển đổi ngầm không thể thực hiện được và để chuyển
đổi thì phải ép kiểu (cast).
Ví dụ: short x; int y = 500;
x = (short)y;
Khi ép kiểu có thể sẽ gây ra nếu không kiểm soát được giá trị của
chúng.
Ví dụ: int y = 35.000; short x = (short) y;

Ngôn ngữ C#

6


Biến (Variable)
Cú pháp khai báo một biến:
[modifier] datatype identifier;

modifier là một trong những từ khóa: public,
private, protected, ….

datatype là kiểu dữ liệu (int, long,…)

identifier là tên biến.

Có thể khai báo và khởi gán nhiều biến cùng một
lúc, với điều kiện các biến thuộc cùng một datatype
và cùng một modifier.

Ví dụ: public static int x = 10, y =20//đúng
public int x = 10, private byte y = 20;//sai
01/06/2006

Ngôn ngữ C#

7


Hằng (Constant)

Là một biến nhưng trị không thay đổi trong suốt thời gian thi
hành chương trình.
Khai báo: const datatype identifier = value
Đặc điểm:











01/06/2006

Phải có từ khóa const.
Phải được gán lúc khai báo.
Không thể gán hằng từ một trị của một biến.
Luôn là static nhưng không dùng từ khóa static
khi khai báo.

Ngôn ngữ C#

8


Hằng (Constant)
Ưu điểm:






Dễ đọc chương trình, bằng cách thay thế các con
số mang bởi những tên đầy ý nghĩa.
Dễ sửa chương trình, bằng cách chỉ một lần thay
đổi giá trị của hằng.
Tránh lỗi dễ dàng hơn. Nếu gán lại giá trị cho
hằng thì chương trình sẽ báo lỗi ngay.





Các loại hằng: literals, symbolic constant, enumeration.

01/06/2006

Ngôn ngữ C#

9


Enumeration (Liệt kê)
Là một tập hợp những hằng được đặt tên.

Là một kiểu dữ liệu số nguyên tự tạo.


Cú pháp:
[atrributes][modifiers] enum identifier [:base-type] {enumerator-list};

base-type là bất kỳ kiểu dữ liệu nào là số (ngoại trừ char).

anumerator-list là danh sách các hằng, mỗi hằng có một trị số, cách
nhau bằng dấu phẩy. Nếu phần phần tử không có trị số thì hằng đầu
tiên có giá trị là 0, hằng đi sau sẽ tăng lên 1 so với trị của hằng trước

Ví dụ: enum SomeValues{
First,
Second,
Third = 20,
Fourth
};


01/06/2006

Ngôn ngữ C#

10


Phạm vi hoạt động của biến

01/06/2006

Ngôn ngữ C#


11


Biểu thức và khoảng trắng
Biểu thức (expression):






Các câu lệnh cho ra một trị được gọi là biểu thức.
Ví dụ:
myVariable = 57;
mySecondVariable = myVariable = 57;

Khoảng trắng (whitespace):






01/06/2006

Các ký tự trắng (space), khoảng trắng canh cột (tab),
dòng mới (newline) đều được gọi là khoảng trắng
(whitespace).
C# làm lơ đi các khoảng trắng trong các câu lệnh.
Ngôn ngữ C#


12


Các câu lệnh (statement)






Các câu lệnh rẽ nhánh
• if…else.
• switch.
Các câu lệnh lặp
• while
• do…while
• for
Các câu lệnh nhảy: continue, break, return, goto.

01/06/2006

Ngôn ngữ C#

13


Câu lệnh if…else



Cú pháp:

if (x > y)
WriteLine(“x > y”);

if (condition-expression)
statement1
[else
statement2]

if (x > y)
WriteLine(“x > y”);

else
WriteLine(“x <= y”);
01/06/2006

Ngôn ngữ C#

14


Câu lệnh switch


Cú pháp:

switch(expresstion)
{
case constant-expression:

statement
jump-statement
[default:statement]
}
01/06/2006

Ngôn ngữ C#

const int one = 1;
int nSelect = 2;
switch(nSelect)
{
case one:
Console.WriteLine("1");
break;
case 2:
Console.WriteLine("2");
break;
case 3:
Console.WriteLine(“3");
goto case 2;
default:
Console.WriteLine(“4");
break;
}
15


Vòng lặp while



Thực hiện statement khi expression trả về kết quả true
while (expresstion)
statement

int
int ii == 0;
0;
while
while (i
(i << 10)
10) {{
}}

Console.WriteLine(i);
Console.WriteLine(i);
i++;
i++;

01/06/2006

0 1 2 3 4 5 6 7 8 9
Ngôn ngữ C#

16


Vòng lặp do…while



Tương tự while, nhưng thực hiện ít nhất một lần.

do statement
while (expresstion);
int
int ii == 0;
0;
do
do{{

Console.WriteLine(i);
Console.WriteLine(i);
i++;
i++;
}}while
while (i
(i << 10)
10)

0 1 2 3 4 5 6 7 8 9

01/06/2006

Ngôn ngữ C#

17


Vòng lặp for
for([initializers];[condition];[iterators])

statement
for
for ((int
int ii == 0;
0; ii << 10;
10; i++)
i++) {{
}}



Console.WriteLine(i);
Console.WriteLine(i);

0 1 2 3 4 5 6 7 8 9
Biến trong khối for chỉ có ý nghĩa trong phạm vi của khối này.

for
for ((int
int ii == 0;
0; ii << 10;
10; i++)
i++)

Console.WriteLine(i);
Console.WriteLine(i);
Console.WriteLine(i);//Error
Console.WriteLine(i);//Error
01/06/2006


Ngôn ngữ C#

18


Lệnh goto


Cho phép nhảy trực tiếp đến một câu lệnh được đánh dấu bởi
một nhản (Label).

if
if (number
(number %% 22 ==
== 0)
0) goto
goto Even;
Even;
Console.WriteLine("odd");
Console.WriteLine("odd");
goto
goto End;
End;
Even:
Even:
Console.WriteLine("even");
Console.WriteLine("even");
End:;
End:;




Không thể nhảy vào một khối đoạn mã chẳng hạn vòng lặp for.
Không thể nhảy ra khỏi một lớp hoặc một khối fianlly

01/06/2006

Ngôn ngữ C#

19


Lệnh break và continue



break: nhảy ra khỏi vòng lặp.
continue: nhảy đến lần lặp tiếp theo.

int
int ii == 0;
0;
while
while (true)
(true) {{
Console.WriteLine(i);
Console.WriteLine(i);
i++;
i++;
if

if (i
(i << 10)
10)
continue;
continue;
else
else
break;
break;
}}
01/06/2006

Ngôn ngữ C#

20


Q&A

01/06/2006

Ngôn ngữ C#

21



×