- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
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/
Tạo một "cuộc trò chuyện cướp biển" với tùy chọn tay trái hoặc tay phải. Tôi muốn nó phản hồi tích cực với các cách viết khác nhau của "trái" và "phải" (như bạn sẽ thấy trong mã), nhưng khi tôi thêm mã cuối cùng Khi sử dụng mã "else", nó mang lại cho tôi một
Câu lệnh With thực thi một loạt câu lệnh trên một đối tượng. Với câu lệnh đối tượng Kết thúc bằng tham số đối tượng phần bắt buộc
Câu lệnh While...Wend thực thi một loạt câu lệnh khi điều kiện được chỉ định là Đúng. Trong khi điều kiện
Vì vậy, tôi gặp một vấn đề nhỏ với mã tôi đang xử lý. while Đúng: r = input("Line: ") n = r.split() if r == " ":
Tôi có một mảng đối tượng: var contact = [ { "firstName": "Akira", "lastName": "Laine", "number"
int main() { int f=fun(); ... } int fun() { return 1; return 2 } Trong chương trình trên, khi gọi a
Tôi có rất nhiều câu lệnh if, câu lệnh if lồng nhau và câu lệnh if-else trong dự án của mình và tôi đang nghĩ đến việc thay đổi chúng thành câu lệnh switch. Một số trong số chúng sẽ có các câu lệnh switch lồng nhau. Tôi biết rằng về mặt biên dịch, các câu lệnh switch thường phức tạp hơn
Câu lệnh Rem chứa các chú thích giải thích trong một chương trình. Rem comment hoặc ' comment Tham số comment là văn bản comment cần được đưa vào. Cần có khoảng cách giữa từ khóa Rem và bình luận.
Câu lệnh ReDim khai báo các biến mảng động và phân bổ hoặc phân bổ lại không gian lưu trữ ở cấp quy trình. ReDim [Giữ lại] varname(subscripts) [, varname(subscripts)]
Câu lệnh Randomize khởi tạo trình tạo số ngẫu nhiên. Chọn ngẫu nhiên [số] Đối số số có thể là bất kỳ biểu thức số hợp lệ nào. Mô tả Randomize sử dụng tham số số để khởi tạo
Câu lệnh Public xác định các biến công khai và phân bổ không gian lưu trữ. Xác định các biến riêng tư trong khối Lớp. Tên công khai[([subscripts])][, varname[([subscripts])
Câu lệnh Sub khai báo tên của thủ tục Sub, các tham số của nó và mã tạo nên phần thân của nó. [Công khai [Mặc định]|Riêng tư] Tên phụ [( arglist )]
Câu lệnh Set gán một tham chiếu đối tượng cho một biến hoặc thuộc tính hoặc liên kết một tham chiếu đối tượng với một sự kiện. Đặt objectvar = {objectexpress | Tên lớp mới
Tôi có khối mã này và đôi khi câu lệnh if đầu tiên chạy trước và đôi khi câu lệnh if thứ hai chạy trước. Tôi không chắc tại sao điều này lại xảy ra vì tôi nghĩ javascript là đồng bộ. for (let i = 0; i < dataObje
Đây là một đoạn code javascript, mình muốn viết như thế này: Nếu người đó trả lời có thì trả lời "Thật tuyệt", nếu người đó trả lời không thì trả lời "Tôi sẽ làm bạn hài lòng", nếu người đó trả lời câu hỏi có chứa "là" hoặc "không", vui lòng nói "chỉ gõ" có hoặc không, không có gì
Đây là nhiệm vụ của tôi, tôi cố gắng thực hiện nó chỉ bằng cách sử dụng các câu lệnh if ngắn, lỗi duy nhất tôi gặp phải là sử dụng "(0,5<=ratio<2)", ngoài ra, cách xây dựng có đúng không? Máy quét scn = Máy quét mới(
Có cách nào để sử dụng câu lệnh if trong câu lệnh select không? Tôi không thể sử dụng câu lệnh Case trong trường hợp này. Thực ra tôi đang sử dụng iReport và tôi có một tham số. Điều tôi muốn làm là nếu người dùng không nhập một tham số nhất định thì nó sẽ chọn tất cả các phiên bản.
Câu hỏi này đã có câu trả lời ở đây: Đã đóng 11 năm trước. Có thể trùng lặp: Nếu so với Tốc độ chuyển đổi Tôi sẽ sử dụng C++ làm ví dụ, nhưng câu hỏi tôi đang hỏi không phải là ngôn ngữ cụ thể. ý tôi là một
Câu lệnh Tập thuộc tính, trong khối Lớp, khai báo tên, tham số và mã tạo thành phần thân của thủ tục Thuộc tính đặt tham chiếu đến một đối tượng. [Công khai | Riêng tư] Chuyên nghiệp
Câu lệnh Property Let khai báo tên, tham số, mã, v.v. trong khối Class, tạo thành phần chính của quy trình gán (cài đặt) Thuộc tính. [Công khai | Riêng tư] Dự luật
Tôi là một lập trình viên xuất sắc, rất giỏi!