# data[].attributes.headline
Câu 1: Cấu trúc điều kiện If(các dạng đơn giản và phức tạp)

# data[].attributes.subject
Câu 1: Cấu trúc điều kiện If(các dạng đơn giản và phức tạp)

# data[].attributes.body
**Cấu trúc điều khiển if

+++++if đơn giản++++++

Lệnh if đơn giản kiểm tra nếu điều kiện là đúng thì thi hành khối lệnh thích hợp.

if (condition) {
    //thi hành nếu điều kiện condition là true
}

Ví dụ: Kiểm tra số cầu thủ được đăng kí thi đấu có hợp lệ hay không (24 người là hợp lệ)

int socauthu = sc.nextInt();
if(socauthu==24) {
    System.out.println("So cau thu thi dau hop le");
}

++++if ... else ...++++++

Nếu điều kiện đúng thi hành khối lệnh thứ nhất, nếu sai thi hành khối lệnh sau else
Ví dụ: Kiểm tra xem số cầu thủ ra sân có hợp lệ (Mỗi đội 11 cầu thủ)

int so_cau_thu_ra_san = sc.nextInt();
if(so_cau_thu_ra_san==22) {
    System.out.println("So cau thu ra san hop le");
}
else{
    System.out.println("So cau thu ra san khong hop le");
}

++++Câu lệnh else if+++++

Kiểm tra nhiều điều kiện, điều kiện nào đúng thì thi hành khối lệnh tương ứng
Ví dụ: Kiểm tra sô áo cầu thủ có hợp lệ (chỉ nằm trong[0-100])

        int so_ao = sc.nextInt();
        if(so_ao <0) {
            System.out.println("Khong hop le");
        }else if(so_ao > 100) {
            System.out.println("Khong hop le");
        } else {
            System.out.println("Hop le");
        }

# data[].attributes.body
1. Mô tả cú pháp rẽ nhánh switch - case
- Vậy khi nào chúng ta nên sử dụng cấu trúc rẽ nhánh switch - case thay thế cho cấu trúc điều khiển if - else if - else?
- Khi mà chúng ta có số trường hợp cần xử lý lớn hơn 3 thì khi đó chúng ta nên sử dụng switch - case để dễ dàng kiểm tra và xử lý, giúp cho chương trình dễ quan sát hơn.
- Cú pháp:
switch (biểu_thức)
{
case giá_trị_1:
Lệnh 1;
break;
case giá_trị_2:
Lệnh 2;
break;
...
case giá_trị_n:
Lệnh n;
break;
[default: Lệnh 0;]
}

- trong đó: . Biểu_thức phải trả về kết quả là một số nguyên, chuỗi hoặc một ký tự.
. Giá_trị_1, giá_trị_2,..., giá_trị_n là các biểu thức hằng, nguyên hoặc ký tự và chúng phải khác nhau.
. Lệnh 1, Lệnh 2, ..., Lệnh n, Lệnh 0 là các lệnh trong thân của switch. Các bạn thấy sau mỗi lệnh này chúng ta có từ khóa break;, từ khóa này có thể có hoặc không có tùy theo từng trường hợp.

- Lưu ý: . Lệnh break là để nhảy ra khỏi lệnh switch, nếu không có lệnh này cấu trúc switch sẽ duyệt cả các trường hợp phía dưới cho đến khi gặp dấu đóng switch (dấu }) (vì chưa gặp break coi như chưa ra khỏi lệnh switch).
. Khi sử dụng lệnh switch có thể xảy ra nhiều giá trị trả về cho một trường hợp (một khả năng xảy ra của biểu thức).

2. Ví dụ switch đơn giản.
- ví dụ: Menu quản lí đội bóng, nhập lựa chọn.
switch(chon)
{
case 1:
quanlydoibong();
break;
case 2:
quanlycauthu();
break;
case 3:
quanlyketquathidau ();
break;
case 4:
thongke ();
break;
case 0:
break;
default :
printf("Lua chon khong hop le. Moi ban chon lai!");
}

# data[].attributes.body
*Cú pháp của vòng lặp for là:
for (initialization; testExpression; update)
{
// mã bên trong phần thân của vòng lặp
}

*Cách dùng vòng lặp for:

1. Biểu thức khởi tạo(initialization) chỉ được thực hiện một lần.

2. Sau đó, biểu thức kiểm tra được đánh giá. Ở đây, biểu thức kiểm tra(testExpression) là một biểu thức boolean.

3. Nếu biểu thức kiểm tra trả kết quả là true,

Phần code trong thân vòng lặp for được thực hiện.

Sau đó, biểu thức cập nhật(update) được thực hiện.

Một lần nữa, biểu thức kiểm tra được đánh giá.

Nếu biểu thức kiểm tra trả kết quả là true, phần code bên trong thân vòng lặp for được thực hiện và biểu thức cập nhật được thực hiện.

Quá trình này diễn ra cho đến khi biểu thức kiểm tra được cho kết quả false.

4. Nếu biểu thức kiểm tra được ước tính false, vòng lặp for chấm dứt.

*Ví dụ: Đếm số cầu thủ trẻ (<=20 được gọi là trẻ)
int dem=0;
for(int i=0;i<danhsach.size();i++){
if(danhsach.get(i).getAge()<=20){
dem++;
}
}

# data[].attributes.body
Cách dùng của vòng lặp là ta muốn một vài dòng code được chạy đi chạy lại nhiều lần đến một điều kiện nào đó sẽ kết thúc.
WHILE sẽ kiểm tra điều kiện lặp trước rồi thực hiện, còn DO WHILE là thực hiện trước đã rồi mới kiểm tra.
Cấu trúc while:

while (<Biểu thức điều kiện>) {

<Khối lệnh lặp lại>

}

VD: Nhập số tiền lương để trả cho 5 cầu thủ

int i=1;
int tien_luong;
While ( i<=5) {
System.out.println("Nhap tien luong:");
tien_luong=sc.nextInt()
i++;
}

Cấu trúc do...while

do {

<Khối lệnh lặp lại>

} while (<Biểu thức điều kiện>)

VD: Yêu cầu nhập tiền lương của các cầu thủ xem có đạt chỉ tiêu hay không (>=100tr)

int tien_luong;
do {
System.out.println("Nhap tien luong:");
tien_luong=sc.nextInt();
} while(tien_luong>=100);

# data[].attributes.headline
Câu 5. Nếu cú pháp, cách dùng và cho ví dụ về cách sử dụng của break và continue :

# data[].attributes.subject
Câu 5. Nếu cú pháp, cách dùng và cho ví dụ về cách sử dụng của break và continue :

# data[].attributes.body
Cách hoạt động break:
- Một vòng lặp đang thực hiện nếu gặp lệnh break sẽ thoát vòng lặp ngay lập tức.
Cách hoạt động continue:
- Nếu một vòng lặp đang chạy mà gặp lệnh continue, tất cả các lệnh trong thân vòng lặp nằm phía dưới lệnh continue sẽ bị bỏ qua ở lần lặp hiện tại. Vòng lặp sẽ chuyển sang kiểm tra điều kiện và tiếp tục lặp(nếu điều kiện lặp còn thỏa mãn).
Cú pháp câu lệnh break:

break;

Cú pháp câu lệnh continue:

continue;

Ví dụ break:

case 1:
System.out.println("Nhap so           bong can them: ");
n =    Integer.parseInt(sc.nextLine());

for (int i = 0; i < n; i++) {
Bong bong = new Bong();
bong.input();
bongList.add(bong)
}
break;
case 2:
break;
default:
System.err.println("Nhap sai");
break;
Ví dụ continue:Đếm số áo thi đấu của cầu thủ có hợp lệ, nếu  hợp lệ thì chương trình bỏ qua dòng in cuối.

for (int i = 0; i <= ds.size(); i++) {

            if (ds.get(i).getSoAo() > 0 && ds.get(i).getSoAo() < 100) {
                dem++;
                continue;
            }
            System.out.println("Khong hop le");
        }

# data[].attributes.body
Câu 1:Trần Thanh Vũ
Câu 2:Hạ Minh Chương
Câu 3:Nguyễn Ngọc Thiện
Câu 4:Nguyễn Thái Học
Câu 5:Nguyễn Đình Truyện