Tôi phải tạo báo cáo dựa trên đầu vào của người dùng. Người dùng trả lời một câu hỏi, và sau đó tùy thuộc vào câu trả lời tôi đi sang trái hoặc phải trong một cấu trúc treelike, và đặt một câu hỏi mới. Một số nút sẽ có cùng một câu hỏi, nhưng các trẻ khác nhau. Tôi không chắc chắn những gì sẽ là cách tốt nhất để làm điều đó về khả năng đọc mã?Tối ưu cấu trúc điều khiển treelike
Tôi muốn tránh cấu trúc điều khiển rất lớn, vì nó sẽ là vô cùng không đọc được, như thế này:
if() {
if() {
if() {
if() {
...
}
}
else {
if() {
...
}
}
}
else {
...
}
}
else {
if() {
if() {
if() {
...
}
}
else {
if() {
...
}
}
}
}
Có một số cách tốt hơn để đối phó với nó? Dưới đây là một hình ảnh như thế nào cây của tôi trông giống như
Tôi nghĩ rằng nó không thể được tối ưu hóa nữa vì cấu trúc điều khiển là phần rất cơ bản của một ngôn ngữ, nếu logic của bạn rất phức tạp thì chương trình của bạn cũng phải phức tạp. Tuy nhiên, bạn có thể kết hợp các điều kiện cha với điều kiện hậu duệ bằng cách sử dụng '&&' để làm cho cấu trúc điều khiển 'đồng nhất', ví dụ 'if (COND1 && COND2) {} nếu (COND1 && COND3) {} ...' do đó sẽ ít hơn làm tổ – LotusH