KIỂU DỮ LIỆU+ Dữ liệu do người sử dụng định nghĩa user - defined CHƯƠNG 2: CĂN BẢN NGÔN NGỮ C# C# + Dữ liệu kiểu trị + Dữ liệu xây dựng sẵn built - in + Dữ liệu kiểu quy chiếu Cách lưu
Trang 1CƠ SỞ LẬP TRÌNH
C SHARP
Trang 22.2 BIẾN VÀ HẰNG
2.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2 : CĂN BẢN NGÔN NGỮ
Trang 32.1 KIỂU DỮ LIỆU
+ Dữ liệu do người sử dụng định nghĩa (user - defined )
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
C#
C#
+ Dữ liệu kiểu trị
+ Dữ liệu xây dựng sẵn (built - in)
+ Dữ liệu kiểu quy chiếu
Cách lưu trữ các trị(Stack hay Heap)
Trang 4bool System.Boolean 1 true hoặc false
byte System.Byte 1 Unsigned (0 - 255)
sbyte System.SByte 1 Signed (-128 đến 127)
char System.Char 2 Ký tự Unicode
decim
al
System.Decimal 8 28 số và ví trí dấu chấm thập
phân double System.Double 8
float System.Single 4
int System.Int32 4
Long System.Int64 8
string System.String
Trang 5* Dữ liệu xây dựng sẵn (built - in):
+ Kiểu dữ liệu số nguyên (integer type)
+ Kiểu dữ liệu dấu phẩy động (floating point number)+ Kiểu dữ liệu số thập phân (decimal type)
+ Kiểu dữ liệu bool
+ Kiểu dữ liệu ký tự
+ Chuyển đổi các kiểu dữ liệu
Trang 6* Dữ liệu xây dựng sẵn (built - in):
+ Kiểu dữ liệu số nguyên (integer type)
- C# hỗ trợ 8 kiểu dữ liệu số nguyên (byte, sbyte, short, int, long, unshort, uint và ulong)
- Có thể gán trị theo thập phân hoặc thập lục phân (0x)
- Khai báo rõ ràng bằng cách ghi nối đuôi
- Nếu có nhập nhằng thì mặc nhiên là int
Trang 7* Dữ liệu xây dựng sẵn (built - in):
+ Kiểu dữ liệu dấu phẩy động:
- C# cung cấp 2 kiểu: float và double
- Nếu có nhập nhằng thì mặc nhiên là float
- Muốn khai báo trị là float thì nối đuôi ký tự F (hoặc f)
Trang 8* Dữ liệu xây dựng sẵn (built - in):
+ Kiểu dữ liệu số thập phân:
- C# cung cấp 1 kiểu decimal với độ tinh xác 28 digit
- Dùng trong giới tài chính để khai báo số lượng tiền tệ
- Muốn khai báo kiểu decimal, ghi nối đuôi M (hoặc m)
Trang 9* Dữ liệu xây dựng sẵn (built - in):
+ Kiểu dữ liệu bool:
- Chứa trị false hoặc true
- Không thể chuyển đổi trị bool thành trị số nguyên hoặc ngược lại
- Nhận thông báo sai khi sử dụng 0 cho false, 1 cho true
Trang 10- Trị phải được đóng khung trong hai dấu nháy đơn (‘)
- Nếu đóng khung trong hai dấu nháy kép, trình biên dịch xem như là một chuỗi
Trang 11* Dữ liệu xây dựng sẵn (built - in):
+ Chuyển đổi các kiểu dữ liệu:
- Chuyển đổi ngầm: tự động được thực hiện
Trang 12* Dữ liệu xây dựng sẵn (built - in):
+ Chuyển đổi các kiểu dữ liệu:
- Chuyển đổi ngầm: phải ép kiểu một cách rõ ràng
Trang 13* Dữ liệu xây dựng sẵn (built - in):
+ Chuyển đổi các kiểu dữ liệu:
- Chuyển đổi ngầm: C# hỗ trợ
Từ kiểu dữ liệu này … Qua kiểu dữ liệu …
sbyte short, int, long, float, double,
decimal byte short, int, uint, float, double,
decimal short int, float, double, decimal
int float, double, decimal
uint float, double, decimal
float double
char int, uint, float, double, decimal
Trang 14* Dữ liệu xây dựng sẵn (built - in):
+ Chuyển đổi các kiểu dữ liệu:
- Một số chuyển đổi ngầm có thể mất dữ liệu:
Từ kiểu dữ liệu này
… Qua kiểu dữ liệu …
int short int uint uint int float int bất cứ kiểu dữ liệu số char decimal bất cứ kiểu dữ liệu số
Chuyển đổi tường minh (ép kiểu)
Trang 15* Dữ liệu xây dựng sẵn (built - in):
+ Chuyển đổi các kiểu dữ liệu:
- Chuyển đổi tường minh:
Giá trị không mong muốn
Trang 16* Dữ liệu xây dựng sẵn (built - in):
+ Chuyển đổi các kiểu dữ liệu:
- Chuyển đổi tường minh: sử dụng toán tử checked
Trang 17+ Cú pháp: [modifier] datatype identifier;
- modifier: một trong những từ khóa (public, private, protected)
trong đó:
- datatype: kiểu dữ liệu (int, string, char, float, double…)
- identifier: tên biến (tuân theo quy tắc đặt tên của C#)
Trang 18+ Có thể khai báo nhiều biến trong cùng một câu lệnh
đơn với điều kiện cùng kiểu và cùng loại (modifier)
+ Ngược lại sẽ báo lỗi:
* Biến (variable):
Trang 23- datatype: kiểu dữ liệu (int, string, char, float, double…)
- identifier: tên biến (tuân theo quy tắc đặt tên của C#)
- const: từ khóa khai báo hằng
- value: giá trị khởi gán của hằng
Trang 25+ Khi đã khởi gán không thể bị ghi đè
+ Không thể khởi gán hằng từ một trị của biến
+ Không thể đưa từ khóa static vào khi khai báo hằng
Trang 262.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU
+ Câu lệnh phải được kết thúc bằng dấu (;).
+ Chương trình gồm một loạt câu lệnh theo thứ tự
+ Có 2 loại câu lệnh rẽ nhánh:
- Rẽ nhánh vô điều kiện
- Rẽ nhánh có điều kiện
Trang 272.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 282.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 292.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 302.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
statement2]
Trang 312.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 322.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 332.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU
+ Câu lệnh rẽ nhánh có điều kiện: if lồng nhau
- Khi điều kiện phức tạp: đánh giá kết quả học tập
Trang 342.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU
+ Câu lệnh rẽ nhánh có điều kiện: if lồng nhau
- Khi điều kiện phức tạp: đánh giá kết quả học tập
Trang 352.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
C#
C#
* Các câu lệnh (statements):
+ Câu lệnh rẽ nhánh có điều kiện: switch
- Phương án thay thế cho if lồng nhau
- Cú pháp: switch (expression)
{
case constant - expression:
statement jump - statement
[default:statement]
}
Trang 362.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 372.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU
Trang 382.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU
Không thể nhảy ra khỏi một lớp hay một
khối finally (sau khối try … catch)
Không nên lạm dụng goto vì gây lúng túng cho người đọc và khó bảo trì
Trang 392.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU
Trang 402.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 412.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU
- condition: biểu thức được kiểm tra trước mỗi lần lặp
- iterators: biểu thức được định trị sau mỗi lần lặp
Trang 422.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 432.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 442.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU
+ Câu lệnh lặp vòng: vòng lặp for với nhiều câu lệnh
trong phần initializers và iterators
- Ví dụ:
Trang 452.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 462.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU
+ Khoảng trắng canh cột (tab)
+ Sang hàng mới (newline)
Khoảng trắng (Whitespace)+ C# bỏ qua những khoảng trắng trong các câu lệnh.+ Khoảng trắng trong chuỗi không thể bỏ qua
Trang 472.3 CÁC CÂU LỆNH, KHOẢNG TRẮNG VÀ BIỂU THỨC
CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
C#
C#
* Biểu thức (expression):
+ Các câu lệnh cho ra một trị được gọi là biểu thức
+ Có thể khởi gán cùng một trị cho nhiều biến
Trang 48+ Toán tử tăng giảm
+ Sử dụng các toán tử logic với điều kiện
+ Các toán tử kiểu dữ liệu
+ Thứ tự tính toán
+ Toán tử tam phân
Trang 49CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 50CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 51CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Trang 52CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
C#
C#
* Toán tử tăng giảm (++, ):
+ Thay đổi trị về mặt tính toán rồi gán trị mới cho biến cũ
2.4 CÁC TOÁN TỬ
- Toán tử tính toán và gán trở lại:
+ Cung cấp 2 toán tử đặc biệt để tăng/giảm 1 đơn vị (++, )
Trang 53CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
C#
C#
* Toán tử tăng giảm (++, ):
+ Thay đổi trị về mặt tính toán rồi gán trị mới cho biến cũ
2.4 CÁC TOÁN TỬ
- Toán tử tiền tố và toán tử hậu tố:
Trang 54CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
C#
C#
* Toán tử tăng giảm (++, ):
+ Thay đổi trị về mặt tính toán rồi gán trị mới cho biến cũ
2.4 CÁC TOÁN TỬ
- Toán tử tiền tố và toán tử hậu tố:
Trang 55CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
Less than < bigValue < smallValue false
Lessthan or equals <= bigValue <=
smallValue false
(bigValue = 100, smallValue = 50)
Trang 56CHƯƠNG 2: CĂN BẢN NGÔN NGỮ
C#
C#
* Toán tử logic với điều kiện:
+ Dùng để trắc nghiệm 2 hay nhiều điều kiện
Trang 57CHƯƠNG 2: CĂN BẢN NGÔN NGỮ