Biến cục bộ local variable: là biến được khai báo trong một phương thức.. Một biến cục bộ phải được khai báo trước khi sử dụng.. Một biến cục bộ có thể trùng tên nhiều lần trong các
Trang 1Lý thuyết: 45 tiết
Thực hành: 30 tiết
Trang 3D
B
C
Giới thiệu lập trình java
Các kiểu dữ liệu cơ sở và các toán tử
Phương thức nhập / xuất - Methods
Các cấu trúc điều khiển
Trang 4 Giới thiệu phương thức
Phương thức nhập / xuất từ Dialog Box
Phương thức nhập / xuất từ Command Prompt (dòng lệnh)
Các lưu ý liên quan đến phương thức trong Java
Phạm vi của biến cục bộ
Phương thức trừu tượng
Trang 5 Phương thức: là một tập các câu lệnh được nhóm lại với nhau nhằm thực hiện một chức năng nào đó
public static int findMax( int num1 , int num2)
Modifier: phạm vi truy cập
returnValuetype: kiểu dữ liệu trả về
methodName: tên phương thức
Parameter: danh sách tham số
Trang 6 Cú pháp:
Trong đó:
String string = JOptionPane.showInputDialog(null, “Prompt Message”,
“Dialog Title”, JOptionPane.QUESTION_MESSAGE));
Trang 7 Cú pháp: sử dụng các phương thức trong lớp Scanner (chỉ
có trong bộ JDK 1.5 trở lên)
import java.util.*;
public class readint{
static Scanner s=new Scanner (System.in);
public static void main(String[] abc){
System.out.print("Doc vao mot so nguyen: ");
int a=readInt();
System.out.println("So nguyen la: " + a);
} public static int readInt(){
return s.nextInt();
} }
Trang 8 Để sửa lỗi này, xóa if (n<0) trong đoạn mã trên
public static int xMethod(int n) {
if (n > 0) return 1;
else if (n == 0) return 0;
else if (n < 0) return –1;
}
Trang 10System.out.println("Before num1 is " + num1 + " and num2 is " + num2);
swap(num1, num2);
System.out.println("After num1 is " + num1 + " and num2 is " + num2);
} public static void swap(int n1, int n2) { System.out.println("\tInside the swap method");
System.out.println("\t\tBefore swapping n1 is " + n1 + " n2 is " + n2);
// Swap n1 with n2 int temp = n1;
n1 = n2;
n2 = temp;
System.out.println("\t\tAfter swapping n1 is " + n1 + " n2 is " + n2);
} }
Trang 114 Overloading methods:
Ví dụ:
2 Truyền tham số
3 Truyền tham trị
4 Overloading public class TestMethodOverloading { public static void main(String[] args) {
System.out.println("The maximum is "+ max(3, 4));
System.out.println("The maximum is "+ max(3.0, 5.4));
System.out.println("The maximum is "+ max(3.0, 5.4, 10.14));
} public static int max(int num1, int num2) {
if (num1 > num2) return num1;
else return num2;
} public static double max(double num1, double num2) {
if (num1 > num2) return num1;
else return num2;
} public static double max(double num1, double num2, double num3) { return max(max(num1, num2), num3);
} }
Trang 12 Đôi khi có thể có nhiều hơn một đáp ứng khi gọi một phương thức, nhưng trình biên dịch không thể xác định được đáp ứng thích hợp nhất Điều này được gọi là "Gọi mập mờ"
(ambiguous invocation) - đây là một lỗi biên dịch
} public static double max(int num1, double num2) {
if (num1 > num2) return num1;
else return num2;
} public static double max(double num1, int num2) {
if (num1 > num2) return num1;
else return num2;
}
Trang 13 Biến cục bộ (local variable): là biến được khai báo trong một
phương thức
Phạm vi của một biến cục bộ bắt đầu từ khi khai báo đến cuối block chứa biến đó Một biến cục bộ phải được khai báo trước khi sử dụng
Một biến cục bộ có thể trùng tên nhiều lần trong các khối riêng
rẽ không lồng nhau trong một phương thức, nhưng không thể khai báo một biến cục bộ 2 lần trong các khối lồng nhau
Ví dụ: cho biết các đoạn sau đúng hay sai?
Trang 14 Biến cục bộ (local variable): là biến được khai báo trong một
phương thức
Phạm vi của một biến cục bộ bắt đầu từ khi khai báo đến cuối block chứa biến đó Một biến cục bộ phải được khai báo trước khi sử dụng
Một biến cục bộ có thể trùng tên nhiều lần trong các khối riêng
rẽ không lồng nhau trong một phương thức, nhưng không thể khai báo một biến cục bộ 2 lần trong các khối lồng nhau
Ví dụ: cho biết các đoạn sau đúng hay sai?
x += i;
} // i is declared again for (int i = 1; i < 10; i++) {
y += i;
} }
Trang 15 Biến cục bộ (local variable): là biến được khai báo trong một
phương thức
Phạm vi của một biến cục bộ bắt đầu từ khi khai báo đến cuối block chứa biến đó Một biến cục bộ phải được khai báo trước khi sử dụng
Một biến cục bộ có thể trùng tên nhiều lần trong các khối riêng
rẽ không lồng nhau trong một phương thức, nhưng không thể khai báo một biến cục bộ 2 lần trong các khối lồng nhau
Ví dụ: cho biết các đoạn sau đúng hay sai?
Trang 16 Thân phương thức như một hộp đen chứa sự thực hiện chi tiết của phương thức
Trang 18 Lệnh if Cú pháp:
Ví dụ:
if ((i > 0) && (i < 10)) { System.out.println("i la mot so nguyen nam giua 0 va 10");
}
if (Biểu_thức_logic) { các_câu_lệnh;
}
Trang 19System.out.println(“S có " + bankinh + " la " + S);
} else { System.out.println("Du lieu khong hop le!");
}
if (Biểu_thức_logic) { Các_câu_lệnh_ứng_BT_đúng;
} else { Các_câu_lệnh_ứng_BT_sai;
}
Trang 20 Lệnh if
Lệnh if else
Có thể sử dụng nhiều lệnh if luân phiên:
if (score >= 90) grade = ‘A’;
else
if (score >= 80) grade = ‘B’;
else
if (score >= 70) grade = ‘C’;
else
if (score >= 60) grade = ‘D’;
else grade = ‘F’;
if (score >= 90) grade = „A‟;
else if (score >= 80) grade = „B‟;
else if (score >= 70) grade = „C‟;
else if (score >= 60) grade = „D‟;
else grade = „F‟;
Trang 21else System.out.println("B");
int i = 1; int j = 2; int k = 3;
if (i > j)
if (i > k) System.out.println("A");
else System.out.println("B");
Trang 22 Lệnh if
Lệnh if else
Các đoạn lệnh sau là tương đương:
if (n % 2 == 0) iseven = true;
else iseven = false;
boolean iseven = (n % 2 == 0);
if (n == true) system.out.prinln("So chan");
if (n) system.out.prinln("So chan");
Trang 23}
Ví dụ:
switch (sonam) { case 7: laisuatnam = 7.25;
7, 15, hoac 30");
}
Trang 26 Lệnh if
Lệnh if else
Lệnh switch
Ví dụ cho biết kết quả của đoạn lệnh sau
int sonam = 7; double laisuatnam = 0.0;
switch (sonam) { case 7: laisuatnam = 7.25;
case 15: laisuatnam = 8.50;
case 30: laisuatnam = 9.0;
default: laisuatnam = 1.0;
}
Đoạn mã trên luôn cho laisuatnam = 1.0; bất
chấp sonam là bao nhiêu Giả sử sonam = 15
Lệnh laisuatnam = 8.50 được thực hiện, tiếp theo
là lệnh laisuatnam = 9.0, và cuối cùng là lệnh
laisuatnam = 1.0;
Trang 27 Lệnh while Cú pháp:
Ví dụ:
int i = 0;
while (i < 100) { System.out.println("Welcome to Java!");
i++;
}
while (đk_tiếp_tục_lặp) { // thân_vòng_lặp;
// các_câu_lệnh;
}
Trang 28 Lệnh while Không sử dụng giá trị dấu chấm động để kiểm tra đẳng thức trong
một điều khiển lặp Vì giá trị dấu chấm động là gần đúng, sử dụng chúng có thể dẫn đến bộ đếm thiếu chính xác và kết quả sai Ví dụ sau nên sử dụng giá trị int cho biến data Nếu data có kiểu thực thì data != 0 có thể là true dù data bằng 0
Ví dụ:
// data should be zero double data = Math.pow(Math.sqrt(2), 2) - 2;
if (data == 0) System.out.println("data is zero");
slse System.out.println("data is not zero");
Trang 29i++;
} while (i < 100);
do { // thân_vòng_lặp;
// các_câu_lệnh;
} while (đk_tiếp_tục_lặp);
Trang 30}
Tương đượng với vòng while sau:
int i = 0;
while (i < 100) { System.out.println("Welcome to Java! ” + i);
i++;
for (khởi_tạo ; đk_tiếp_tục_lặp; cviệc_sau_mỗi_lần_lặp){
/// thân vòng lặp và các_câu_lệnh;
}
Trang 31 Lệnh lặp for có thể sử dụng khi biết trước số lần lặp, ví dụ khi bạn muốn in ra một thông báo 100 lần
Lệnh lặp while có thể sử dụng khi không biết trước số lần lặp, như trong trường hợp đọc vào các số đến khi gặp số 0
Lệnh lặp do-while có thể sử dụng thay lệnh while khi thân vòng lặp phải được thực hiện trước khi kiểm tra điều kiện tiếp tục lặp
Trang 32 Lệnh while
Lệnh do while
Lệnh for
Các trường hợp sau đây là đúng:
TH 1: for (int i = 1; i < 100; System.out.println(i++));
while (true) { // Do something }
TH 2: for (int i = 0, j = 0; (i + j < 10); i++, j++) {
i++;
} while (i<10);
Trang 33i++;
}
Trang 35 Ví dụ: cho biết giá trị của biến number và sum?
sum += number;
if ( sum >= 3) continue;
sum = 0;
}
Trang 37 Ví dụ: cho biết giá trị của biến number và sum?
sum += number;
if (sum >= 5) continue;
}