Kỹ thuật lập trình Java căn bản - Chương 3: Nền tảng của ngôn ngữ Java
Mục tiêu của bài:
Kết thúc chương này bạn có thể:
Đọc hiểu một chương trình viết bằng Java
Nắm bắt những khái niệm cơ bản về ngôn ngữ Java
Nhận dạng các kiểu dữ liệu
Nhận dạng các toán tử
Định dạng xuất dữ liệu (output) sử dụng các chuỗi thoát (escape
sequence)
Nhận biết các cấu trúc lập trình cơ bản
ence)
Nhiều khi dữ liệu xuất được hiển thị trên màn hình,chúng cần phải được định
dạng.Việc định dạng này cần sự trợ giúp của chuỗi thoát (Escape sequences)
do Java cung cấp
Chúng ta hãy xem ví dụ dưới đây
System.out.println(“Happy\tBirthday”);
Cho ta dữ liệu xuất như sau : Happy Birthday
Bảng dưới đây liệt kê một số chỗi thoát và công dụng của chúng
Chuỗi thoát Mô tả
\n Đưa con trỏ đến dòng kế tiếp (Bắt đầu một dòng mới )
\r Đưa con trở về đầu dòng (Giống ký tự carriage return)
\t Đưa con trỏ đến vị trí Tab-Stop (Như vị trí Tab cuả ký tự)
\\ In vạch chéo ngược (backslash)
\‟ In dấu nháy đơn („)
\” In dấu nháy kép (“)
Bảng 3.10 Các chuỗi thoát
3.10 Điều khiển luồng
Tất cả các môi trường phát triển ứng dụng đều cung cấp một quy trình ra
quyết định (decision-making) được gọi là điều khiển luồng, nó điều khiển việc
thực thi ứng dụng. Điều khiển luồng cho phép người phát triển phần mềm
kiểm tra sự tồn tại của một điều kiện nào đó và ra quyết định phù hợp với
điều kiện đó.
Vòng lặp là một cấu trúc chương trình giúp bạn có thể dùng để thực hiện việc
lặp lại các hành động khi thực thi chương trình mà không cần viết lại các
đoạn chương trình nhiều lần.
Điều khiển rẽ nhánh
Mệnh đề if-else
Mệnh đề swich-case
Vòng lặp (Loops)
Vòng lặp while
Vòng lặp do-while
Vòng lặp for
Chương 3: Nền Tảng Của Ngôn Ngữ Java 59
3.10.1 Câu lệnh if-else
Câu lệnh if-else kiểm tra kết quả của một điều kiện và thực thi một thao tác
phù hợp trên cơ sở kết quả đó. Dạng của câu lệnh if-elsse rất đơn giản
Cú pháp
If (conditon)
{ action 1 statements; }
else
{ action 2 statements; }
Condition: Biểu thức Boolean như toán tử so sánh. Biểu thức này trả về giá
trị True hoặc False
action 1: Các dòng lệnh được thực thi khi giá trị trả về là True
else: Từ khoá xác định các câu lệnh tiếp sau được thực hiện nếu điều kiện
trả về giá trị False
action 2: Các câu lệnh được thực thi nếu điều kiện trả về giá trị False
Đoạn chương trình sau kiểm tra xem các số là chẵn hay lẻ và hiển thị thông
báo phù hợp
Chương trình 3.7
class CheckNumber
{
public static void main(String args[]
{
int num =10;
if(num %2 == 0)
System.out.println (num+ “is an even number”);
else
System.out.println (num +”is an odd number”);
}}
60 Core Java
Ở đoạn chương trình trên num được gán giá trị nguyên là 10. Trong câu lệnh
if-else điều kiện num %2 trả về giá trị 0 và điều kiện thực hiện là True.
Thông báo “10 is an even number” được in ra. Lưu ý rằng cho đến giờ chỉ có
một câu lệnh tác động được viết trong đoạn “if” và “else”, bởi vậy không cần
phải được đưa vào dấu ngoặc móc.
Hình vẽ dưới đây mô tả cách dùng if-else
Tên
if
Tom Else-if John
else
Henry
Điều kiện Giám đốc > 3 năm
kinh nghiệm
Tăng lương
Hình 3.4 If-else
3.10.2 Câu lệnh switch-case
Phát biểu switch-case có thể được sử dụng tại câu lệnh if-else. Nó được sử
dụng trong tình huống một biểu thức cho ra nhiều kết quả. Việc sử dụng câu
lệnh switch-case cho phép việc lập trình dễ dàng và đơn giản hơn.
Cú pháp
swich (expression)
{
case „value‟:action 1 statement;
break;
case „value‟:action 2 statement;
break;
:
:
case „valueN‟: actionN statement; break;
default: default_action statement;
}
expession - Biến chứa một giá trị xác định
value1,value 2,….valueN: Các giá trị hằng số phù hợp với giá trị trên biến
expression .
Chương 3: Nền Tảng Của Ngôn Ngữ Java 61
action1,action2…actionN: Các phát biểu được thực thi khi một trường hợp
tương ứng có giá trị True
break: Từ khoá được sử dụng để bỏ qua tất cả các câu lệnh sau đó và giành
quyền điều khiển cho cấu trúc bên ngoài switch
default: Từ khóa tuỳ chọn được sử dụng để chỉ rõ các câu lệnh nào được
thực hiện chỉ khi tất cả các trường hợp nhận giá trị False
default - action: Các câu lệnh được thực hiện chỉ khi tất cả các trường hợp
nhận giá trị False
Đoạn chương trình sau xác định giá trị trong một biến nguyên và hiển thị
ngày trong tuần được thể hiện dưới dạng chuỗi. Để kiểm tra các giá trị nằm
trong khoảng 0 đến 6
chương trình sẽ thông báo lỗi nếu nằm ngoài phạm vi trên.
Chương trình 3.8
class SwitchDemo
{
public static void main(String agrs[])
{
int day =4;
switch(day)
{
case 0 : System.out.println(“Sunday”);
break;
case 1 : System.out.println(“Monday”);
break;
case 2 : System.out.println(“Tuesday”);
break;
case 3 : System.out.println(“Wednesday”);
break;
62 Core Java
case 4 : System.out.println(“Thursday”);
break;
case 5: System.out.println(“Friday”);
break;
case 6 : System.out.println(“Satuday”);
break;
default: System.out.println(“Invalid day of week”);
}
}
}
Nếu giá trị của bíến day là 4 ,chương trình sẽ hiển thị Thursday,và cứ tiếp
như vậy .
3.10.3 Vòng lặp While
Vòng lặp while được sử dụng khi vòng lặp được thực hiện mãi cho đến khi
điều kiện thực thi vẫn là True. Số lượng lần lặp không đựơc xác định trước
song nó sẽ phụ thuộc vào từng điều kiện.
Cú pháp
while(condition)
{
action statement;
:
:
}
condition: Biểu thức Boolean, nó trả về giá trị True hoặc False. Vòng lặp sẽ
tiếp tục cho đến khi nào giá trị True được trả về.
action statement: Các câu lệnh được thực hiện nếu condition nhận giá trị
True
Chương 3: Nền Tảng Của Ngôn Ngữ Java 63
Đoạn chương trình sau tính giai thừa của số 5.Giai thừa được tính như tích
5*4*3*2*1.
Chương trình 3.9
class WhileDemo
{
public static void main(String args[])
{
int a = 5,fact = 1;
while (a >= 1)
{
fact *=a;
a--;
}
System.out.println(The Factorial of 5 is “+fact);
}
}
Ở ví dụ trên, vòng lặp được thực thi cho đến khi điều kiện a>=1 là True.
Biến a được khai báo bên ngoài vòng lặp và được gán giá trị là 5. Cuối mỗi
vòng lặp, giá tri của a giảm đi 1. Sau năm vòng giá trị của a bằng 0. Điều
kiện trả về giá trị False và vòng lặp kết thúc. Kết quả sẽ được hiển thị “ The
factorial of 5 is 120”
Đoạn chương trình sau hiển thi tổng của 5 số chẵn đầu tiên
Chương trình 3.11
class ForDemo
{
public static void main(String args[])
{
int i=1,sum=0;
64 Core Java
for (i=1;i<=10;i+=2)
sum+=i;
System.out.println (“sum of first five old numbers is “+sum);
}
}
Ở ví dụ trên, i và sum là hai biến được gán các giá trị đầu là 1 và 0 tương
ứng. Điều kiện được kiểm tra và khi nó còn nhận giá trị True, câu lệnh tác
động trong vòng lặp được thực hiện. Tiếp theo giá trị của i được tăng lên 2 để
tạo ra số chẵn tiếp theo. Một lần nữa, điều kiện lại được kiểm tra và câu lệnh
tác động lại được thực hiện. Sau năm vòng, i tăng lên 11, điều kiện trả về giá
trị False và vòng lặp kết thúc. Thông báo: Sum of first five odd numbers
is 25 được hiển thị.
Chương 3: Nền Tảng Của Ngôn Ngữ Java 65
Tóm tắt bài học
Lệnh import được sử dụng trong chương trình để truy cập các gói thư
viện Java.
Chương trình Java chứa một tập các gói. Chương trình có thể chứa các
dòng giải thích. Trình biên dịch sẽ bỏ qua các dòng giải thích này.
“Token” là thành phần nhỏ nhất của chương trình. Có năm loại “token”
Đinh danh (identifiers)
Từ khóa (keywords)
Ký tự phân cách (separators)
Nguyên dạng (Literals)
Các toán tử
Java có các kiểu dữ liệu xây dựng sẵn gọI là kiểu dữ liệu nguyên thuỷ.
Các biến được khai báo vớI một dữ liệu xác định. Hãy thận trọng khi
khai báo tên biến để loại trừ khả năng nhầm lẫn.
Java cung cấp các chỉ định truy xuất sau đây :
Công cộng (public)
Bảo vệ (protected)
Riêng tư (private)
Java cung cấp các bổ nghĩa (modifiers) sau đây:
Tĩnh (static)
Trừu tượng (abstract)
final
Khởi tạo hàm có hai kiểu :
Tường minh (Explicit)
Ngầm định (Implicit)
Java cung cấp nhiều dạng toán tử:
Các toán tử số học
Các toán tử bit
Các toán tử quan hệ
Các toán tử logic
Toán tử đìều kiện
Toán tử gán
Ứng dụng Java có một lớp chứa phương thức main. Các tham số có thể
được truyền vào phương thức main nhờ các tham số lệnh (command
line parameters). Java cung cấp những cấu trúc sau:
if-else
switch
for
while
do while
66 Core Java
Kiểm tra sự tiến bộ
1. Trong Java, kiểu dữ liệu dạng byte nằm trong giới hạn
từ……….đến…………
2. Hãy chỉ các danh định hợp lệ:
a. Tel_num
b. Emp1
c. 8678
d. batch.no
3. Cho biết kết quả thu đươc khi thực hiện đoạn chương trình sau?
class me
{
public static void main(String srgs[ ])
{
int sales=820;
int profit=200;
System.out.println((sale +profit)/10*5);
}
}
4. ……….……là sự cài đặt của các hành động của đối tượng
5. Phương thức public có thể truy cập phương thức private trong
cùng một lớp. Đúng/Sai
6. „static‟ hàm ý rằng phương thức không có mã và được bổ sung
trong các lớp con Đúng/Sai
Khi bạn không định nghiã một hàm khởi tạo cho một lớp, JVM sẽ
cung cấp một hàm mặc định hoặc một hàm khởi tạo ẩn
(implicit). Đúng/Sai
Vòng lặp while thực thi ít nhất một lần thậm chí nếu điều kiện
được xác định là False Đúng/Sai
Bài tập
1. Hãy viết một đoạn chương trình để in ra dòng chữ ” Welcome to
the world of Java”
2. Hãy viết hai phương thức khởi tạo tường minh cho một lớp dùng
để tính diện tích hình chữ nhật. Khi một giá trị được truyền vào
phương thức khởi tạo, nó cho rằng độ dài và chiều rộng bằng
nhau và bằng giá trị truyền vào. Lúc đó, nó sẽ tính diện tích
tương ứng. Khi hai giá trị được truyền vào, nó sẽ tính diện tích
hình chữ nhật.
3. Viết một chương trình thực hiện những việc sau đây:
a. Khai báo và gán giá trị đầu cho các biến m và n là 100 và
200 tương ứng.
b. Theo các điều kiện: nếu m bằng 0, hiển thị kết quả tương
ứng.
c. Nếu m lớn hơn n , hiển thị kết quả tương ứng.
d. Kiểm tra giá trị n là chẵn hay lẻ.
4. Viết một chương trình hiển thị tổng các bội số của 7 nằm giữa 1
và 100.
5. Viết chương trình để cộng bảy số hạng của dãy sau:
1!+2!+3!…………….
File đính kèm:
Kỹ thuật lập trình Java căn bản - Chương 3_Nền tảng của ngôn ngữ Java.pdf

