cuốn sách gpt4 ai đã làm

java - thay thế cho câu lệnh if được nhúng?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-01 21:41:50 26 4
mua khóa gpt4 Nike

Tôi có kinh nghiệm lập trình nhưng chưa biết nhiều về phát triển phần mềm. Tôi hiện đang viết một phần mềm cho công ty mà tôi làm việc và tôi bắt đầu thử thách bản thân với khả năng đọc mã của mình.

Tôi tự hỏi liệu đây có phải là giải pháp thay thế "hợp lệ" cho câu lệnh if được nhúng hay không hoặc liệu có cách tiếp cận nào tốt hơn mà tôi có thể sử dụng hay không.

Giả sử tôi có phương pháp sau:

công khai void someMethod()
{
nếu (điều kiện nào đó)
{
nếu (điều kiện nào đó 2)
{
nếu (điều kiện nào đó 3)
{
// ...vv cho đến khi:
doS Something();
}
khác
{
System.err.println("Lỗi Điều kiện Cụ thể 3");
}
}
khác
{
System.err.println("Lỗi Điều kiện Cụ thể 2");
}
}
khác
{
System.err.println("Lỗi Điều kiện Cụ thể 1");
}
}

Bây giờ điều đầu tiên tôi muốn chỉ ra là việc kết hợp các điều kiện (với &&) là không thể trong trường hợp này vì mỗi điều kiện có một lỗi duy nhất mà tôi muốn báo cáo và nếu kết hợp chúng tôi sẽ không 'Không thể làm được' cái này (hay tôi sẽ làm vậy?). Điều thứ hai tôi nên chỉ ra trước khi có ai đó hét lên "TUYÊN BỐ CHUYỂN ĐỔI!" Đối với tôi, có vẻ như không phải tất cả các điều kiện này đều có thể được xử lý bằng các câu lệnh switch; một số là các lệnh gọi phương thức dành riêng cho đối tượng, một số là các so sánh số nguyên, v.v.

Điều đó cho thấy, cách sau đây có phải là cách hiệu quả để làm cho đoạn mã trên dễ đọc hơn hay có cách nào tốt hơn không?

công khai void someMethod()
{
nếu (! một số điều kiện)
{
System.err.println("Lỗi Điều kiện Cụ thể 1");
return;
}

if (! một số điều kiện 2)
{
System.err.println("Lỗi Điều kiện Cụ thể 2");
return;
}

if (! một số điều kiện 3)
{
System.err.println("Lỗi Điều kiện Cụ thể 3");
return;
}

doS Something();
}

Vì vậy, về cơ bản, thay vì kiểm tra điều kiện trong khối else và báo lỗi, chúng ta kiểm tra điều kiện nghịch đảo của điều kiện và trả về nếu đúng. Kết quả sẽ giống nhau, nhưng có cách nào tốt hơn để xử lý nó không?

câu trả lời hay nhất

Nếu tôi đặc biệt mô phạm, tôi sẽ sử dụng một cái gì đó như thế này.

boolean c1, c2, c3;

khoảng trống công khai someMethod() {
boolean được = đúng;
Chuỗi lỗi = "";

if (ok && !(ok &= c1)) {
err = "Lỗi điều kiện cụ thể 1";
}

if (ok && !(ok &= c2)) {
err = "Lỗi điều kiện cụ thể 2";
}

if (ok && !(ok &= c3)) {
err = "Lỗi điều kiện cụ thể 3";
}

nếu (được) {
doS Something();
} khác {
System.out.print(err);
}
}

Bây giờ bạn đã xuất khẩu một lần và ổn định.

Đã thêm

Nếu &= gây khó khăn cho bạn, hãy sử dụng cái gì đó như:

  nếu (ok && !c3) {
err = "Lỗi điều kiện cụ thể 3";
được = sai;
}

Về java - các lựa chọn thay thế cho các câu lệnh if được nhúng? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/8447658/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress