Ôn tập: luồng điều khiển
Thuộc phần Logic và luồng chương trình trong hành trình Java của Coddy. Bài học 39 trên 59.
Thử thách
Tạo một phương thức có tên processArray nhận hai đối số:
- Một mảng 1 chiều gồm các đối tượng (
data) chứa nhiều kiểu dữ liệu khác nhau (Integer, String hoặc Double) - Một chuỗi (
type) chỉ định kiểu xử lý: "sum" hoặc "find"
Lời giải của bạn nên thể hiện các khái niệm sau:
- Dùng các mệnh đề bảo vệ để xác thực đầu vào ngay khi bắt đầu phương thức
- Dùng so khớp mẫu với instanceof để kiểm tra và ép kiểu (ví dụ:
if (value instanceof Integer i)) - Dùng biểu thức switch với cú pháp mũi tên (ví dụ:
switch (type) -> {) - Dùng vòng lặp có nhãn cùng với break hoặc continue (ví dụ:
search: for())
Quy tắc xử lý:
- "sum": Cộng tất cả giá trị dạng số, bỏ qua chuỗi
- "find": Tìm giá trị dạng số đầu tiên lớn hơn 100
Các thông báo trả về:
- Nếu mảng là null hoặc rỗng: trả về "Invalid input"
- Nếu type không hợp lệ: trả về "Invalid type"
- Với "sum": trả về "Sum: X"
- Với "find": trả về vị trí của giá trị đó trong
data, hoặc "Not found" nếu không có giá trị dạng số nào lớn hơn 100
Tự làm thử
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
public class Main {
public static String processArray(Object[] data, String type) {
// Viết code của bạn ở đây
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dataJson = scanner.nextLine();
String type = scanner.nextLine();
Type arrayType = new TypeToken<Object[]>(){}.getType();
Object[] data = new Gson().fromJson(dataJson, arrayType);
System.out.println(processArray(data, type));
}
}Tất cả bài học trong Logic và luồng chương trình
1Mảng đa chiều
Kiến thức cơ bản về mảng 2DTruy cập phần tử trong mảng 2DVòng lặp lồng nhau với mảng 2DÔn tập về mảng 2DPhép cộng và phép trừ ma trậnMảng không đềuMảng 3D trở lênCác mẫu thường gặp với mảng 2DÔn tập về mảng2HashMap phần 1
HashMap là gì?Khai báo HashMapTruy cập giá trịKiểm tra khóa có tồn tạiChỉnh sửa từ điểnÔn tập: HashMap3HashMap phần 2
Phương thức của HashMapDuyệt bằng keySet()Duyệt bằng entrySet()HashMap lồng nhauÔn tập: Quản lý kho hàngÔn tập: Thao tác với HashMap6Luồng điều khiển nâng cao
Câu lệnh nhãnBiểu thức switchSo khớp mẫuMệnh đề bảo vệÔn tập: luồng điều khiểnTự luyện tập: Trình biên dịch Java online