Nháy
chuột phải vào src, new, class, đặt tên là second. Copy lệnh in vào
public static void main(String args[])
Mảng
là tập hợp nhiều giá trị có cùng kiểu dữ liệu
Đây
là mảng số
int ar[]={1,3,5,6,78,85,23};
Mảng
các chữ
String ar[ ]= {"Thứ hai","Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy", "Chủ nhật" };
int mang[]=new int[10];
Khai
báo mảng có 10 phần tử. Phần tử đầu tiên sẽ là mang[0]
Số
phần từ trong mảng gọi là kích thước mảng
int sophantu=mang.length;
Bây
giờ ta thử in ra tất cả các phần tử trong mảng ar.
for(int i=0;i<ar.length;i++){
System.out.println(ar[i]);
}
Hãy
xem kỹ lệnh for này, ta bắt đầu từ i=0, kết thúc bằng i nhỏ hơn kích thước mảng,
ở đây i=6 vì mảng có 7 phần tử. Vòng lặp for với mảng rất hay bị nhầm chỉ số
kích thước. Để đơn giản luôn nhớ i sẽ nhỏ hơn kích thước mảng, nếu mảng có 10
phần tử, thì i nhỏ hơn 10.
Để
in ra các số chẵn trong mảng, ta thêm vào lệnh if
if(ar[i]%2==0)
Chạy
thử xem kết quả.
Tạo
mảng ar2 với các số từ 1-10
int ar2[]={1,2,3,4,5,6,7,8,9,10};
Bây
giờ nhập lệnh sau để in ra tổng các số chẵn.
for(int i=0;i<ar2.length;i++){
if(ar2[i]%2==0){
tong=tong+ar2[i];
}
}
Nếu
bạn sửa chỗ %2==0 thành %2==1, nó sẽ in ra tổng các số lẻ
Dòng
tong=tong+ar2[i];
có nghĩa là
ta cộng dồn các giá trị tong, các giá trị sau được cộng luôn vào giá trị trước.
Giả sử sau lần chạy đầu tiên, i=0 ta được giá trị 1, tiếp theo được giá trị 3,
thì nó sẽ cộng luôn vào 1 thành 4, cứ như vậy đến cuối cùng ta có tổng của toàn
bộ các số thỏa mãn yêu cầu của lệnh if.
Dòng tong=tong +ar2[i] có khi được viết như sau tong+=ar2[i];
Cách viết này rất phổ biến nhưng nhìn hơi khó hiểu, bạn cứ nên viết
rõ ra có 2 chữ tong hai bên sẽ dễ nhìn hơn.
Nếu muốn biết vị trí của số 85 trong mảng ar ở trên, ta dùng lệnh
for duyệt tất cả các phần tử
for(int
i=0;i<ar.length;i++){
if(ar[i]==85){
vitri=i+1;
}
}
Giá
trị in ra sẽ là 6, cộng thêm 1 vào i vì trong mảng, i=0 là số thứ nhất.
Giả
sử ta muốn đếm xem có bao nhiêu số chia hết cho 3 trong mảng ar2.
int dem=0;
for(int i=0;i<ar2.length;i++){
if(ar2[i]%3==0){
dem=dem+1;
}
}
Khi
chạy for, cứ mỗi khi có một phần tử chia hết cho 3 thi biến dem lại tăng lên 1
đơn vị.
Khai
báo thêm một mảng nữa
int
ar3[]={18,34,150,6,78,85,23};
Ta
thử in ra số lớn nhất trong mảng này, copy đoạn code sau vào
int max=ar3[0];
for(int
i=0;i<ar3.length;i++){
if(ar3[i]>max){
max=ar3[i];
}
}
Sửa
lệnh in để trong ngoặc là max, kết quả là 150
Hãy
xem lệnh for, ban đầu ta khai báo max là một số nguyên, gán luôn giá trị là phần
tử đầu tiên của mảng. Sau đó chạy for để so sánh từng giá trị của mảng với max,
nếu có giá trị lớn hơn, gán giá trị đó cho max.
Với
mảng 2 chiều, ta khai báo nó như sau
int
mang2[][]=new int [2][3];
mang2[0][0]=4;
mang2[0][1]=8;
mang2[0][2]=6;
mang2[1][0]=5;
mang2[1][1]=9;
mang2[1][2]=3;
Lúc này mảng sẽ có 2 dòng, 3 cột, các phần tử trông sẽ như sau
4 8 6
5 9 3
Phần tử ở dòng đầu tiên, cột thứ 3 sẽ được viết là mang2[0][2], đó
là số 6
Để
khai báo kèm luôn dữ liệu, bạn có thể làm như sau
int mang3[][]={{4,8,6},{5,9,3}};
Khi
đó, những số trong ngoặc kép đầu tiên sẽ là dòng đầu tiên, trong ngoặc thứ hai
sẽ là dòng thứ hai.
Phần tử ở dòng thứ 2, cột thứ 3 sẽ được viết là mang3[1][2], đó là
số 3
Để
in ra các giá trị trong mảng 2 chiều, ta dùng vòng lặp for kép.
for(int
i=0;i<2;i++){
for(int
j=0;j<3;j++){
System.out.println(mang2[i][j]);
}
}
Vòng
for kép không dễ hiểu, hãy nghĩ như sau:
Đầu
tiên cho i=0, chạy for đơn bên dưới với j từ 0 đến 2
Tiếp
theo cho i=1, chạy for đơn bên dưới với j từ 0 đến 2
Vậy
nó là 2 lần, hoăc tổng quát là i lần chạy for đơn. Ở đây i biểu thị số dòng, với
i=0 nó in ra dòng 1, i=1 nó in ra dòng 2 của mảng.
Bạn
luôn nên đặt i ở ngoài, j ở trong để dễ hình dung khi khi gán i, j để hiểu nó.
For
kép chỉ dùng được khi bạn đã dùng quen for đơn, bạn hiểu lặp lại for đơn chính
là for kép, khi đó tự bạn biết khi nào buộc phải dùng nó.
Mảng
2 chiều hơi khó hình dung, dễ lẫn dòng, cột. Nhưng nó tiện để gán dữ liệu vào.
Khi làm ứng dụng, có những lúc bạn chỉ có thể dùng mảng 2 chiều vì mảng 1 chiều
là không đủ. Lúc đó tự bạn sẽ hình dung trong đầu ra cách để dùng nó. Vậy ban đầu,
cứ hiểu về mảng 1 chiều là được rồi.
Bạn
rào dòng System.out.println(mang2[i][j]); thành
comment.
Tiếp
theo ta xét tới mảng động. Khai báo như sau
ArrayList mang4=new
ArrayList();
Hoặc:
ArrayList<String> mang4 = new
ArrayList<String>();
Dòng
khai báo dưới bạn xác định luôn kiểu dữ liệu cho mảng là chuỗi
Để
thêm các giá trị vào mảng, bạn dùng lệnh add().
mang4.add("Thứ
hai");
mang4.add("Thứ ba");
mang4.add("Thứ tư");
Mảng
động khác mảng tĩnh ở chỗ nó không có kích thước cố định. Ở mảng tĩnh, nếu bạn
khai báo nó có 10 phần tử, sau đó thêm vào phần tử thứ 11, sẽ có lỗi xảy ra.
Với
mảng động bạn thêm vào bao nhiêu phần tử cũng được.
Để
lấy kích thước mảng động, ta dùng int
kichthuoc=mang4.size();
Để lấy phần tử ta dùng get, ví dụ lấy phần từ đầu
tiên
Mang4.get(0);
Để
xóa một phần tử, ta dùng lệnh mang4.remove(sophantu);
Ví dụ để xóa phần từ thứ 2 ta dùng mang4.remove(1);
Để xóa tất cả các phần tử, ta dùng mang4.clear();
Ta
sẽ xem thêm về chuỗi, tức các ký tự string
Đối
với chuỗi, lệnh cần biết nhất là chặt chuỗi, tức chia nhỏ ký tự ra
Giả
sử ta có chuỗi
String a="Đay
la vi du, phan chia chuoi, theo dau phay";
Ta có thể tạo một mảng bằng cách chặt chuỗi
như sau
String a1[] = a.split(",");
System.out.println(a1[1]);
Lúc
này mảng a1 tạo thành có 3 phần tử “Đay la vi du”, “ phan chia chuoi”,” theo
dau phay”
Ta
cũng hay dùng lệnh cắt chuỗi.
String cat = a1[0].substring(0, 6);
Lệnh
này cắt lấy 6 ký tự từ phần tử đầu tiên trong mảng a1, tức là chuỗi “Đay la vi
du”
In
ra màn hình ta có chuỗi “Đay la”
Chú
ý ký tự trắng cũng được tính là một ký tự.
Dùng
chuỗi để cắt thành mảng rất hay dùng trong thực tế lập trình.
Bài
tập
Tạo
một mảng các số bất kỳ, in ra tổng các số chia hết cho 3, 6, 9
Đếm
xem có bao nhiêu số chia hết cho 5.
Tìm
xem số 8 ở vị trí nào, nếu trong mảng không có số 8 thì sao.
In
ra giá trị nhỏ nhất của mảng.
Sắp
xếp tăng giảm dần, phải có mẫu tăng trước mới dc.
Can
năm gồm có Giáp, Ất, Bính, Đinh, Mậu, Kỷ Canh, Tân, Nhâm, Quý.
12
địa chi gồm Tý, Sửu, Dần, Mão, Thìn, Tỵ, Ngọ, Mùi, Thân, Dậu, Tuất, Hợi
Lấy
năm dương chia cho 10, số dư đổi thành can. Dư 1 là Tân, 2 Nhâm, 3 Quý, 4 Giáp,
5 Ất, 6 Bính, 7 Đinh, 8 Mậu, 9 Kỷ, 0 Canh.
Lấy
năm dương chia cho 12, số dư đổi thành chi. Dư 1 là Dậu, 2 Tuất, 3 Hợi, 4 Tý, 5
Sửu, 6 Dần, 7 Mão, 8 Thìn, 9 Tỵ, 10 Ngọ, 11 Mùi, 0 Thân.
Tính
để biết năm âm lịch từ năm dương.
Tôi
làm giúp bạn phần đổi ra can, bạn tự làm nốt phần đổi ra chi.
No comments:
Post a Comment