2010-12-16 29 views
5

Nếu bạn nhìn vàocú pháp java tốt hơn là gì: if (isSomething() == false) {hoặc nếu {

if (!x) { 
if (x == false) { 

Dường như x là tốt hơn, nhưng

(isSomething()!)!
if (!isSomething()) { 
if (isSomething() == false) { 

bạn có thể dễ dàng giám sát!

Việc cần làm? Có đề xuất nào không?

+0

Một số câu trả lời trong câu hỏi này giải quyết vấn đề này. http://programmers.stackexchange.com/questions/12807/make-a-big-deal-out-of-true – Ishtar

Trả lời

12

Tùy chọn thứ ba ẩn là đặt tên biến và phương thức của bạn đúng cách.

Thay vì

if (!isDisabled()) { 
    ... 
} 

sử dụng

if (isEnabled()) { 
    ... 
} 

hoặc nếu bạn muốn kiểm tra sự tiêu cực:

boolean disabled = !isEnabled(); 
if (disabled) { 
    ... 
} 

hoặc thêm cả hai phương pháp:

boolean isDisabled() { 
    return !isEnabled(); 
} 

Chỉnh sửa: Tôi đã tìm thấy câu hỏi này: Is it bad to explicitly compare against boolean constants e.g. if (b == false) in Java?

+0

+1 yep, tôi nghĩ nếu bạn có chức năng là tốt hơn để làm cho nó mà bạn kiểm tra nếu giá trị trả lại là đúng hơn sau đó nếu nó không phải là sai, như: if (isEnabled()) {} – Pietro

7

Tôi sẽ gắn với ký hiệu if (!isSomething()) {. Nếu bạn hoặc những người khác cảm thấy khó đọc, bạn luôn có thể thêm một khoảng trắng nhỏ xung quanh '!' để làm cho nó nổi bật:

if (! isSomething()) { hoặc if (!isSomething()) {

Bên cạnh đó, nhiều báo cáo có điều kiện có thể trở thành áp đảo với các ký hiệu sau

if (isSomething() == false && isSomethingElse() == false && ..),

trong khi thay thế của nó là ngắn và gọn gàng. Sau một thời gian nó trở nên tự nhiên để đọc '!' cùng với các câu lệnh là "not isSomething() và không phải là isSomethingElse()".

+0

+1 cho không gian xung quanh "!" lừa, tôi không bao giờ nghĩ về việc này, nhưng nó có thể hữu ích :) – LaGrandMere

3

Tôi không nghĩ có bất kỳ đề xuất nào mà mọi người sẽ theo dõi.

Hãy làm theo cách của bạn, personnally, tôi sẽ chọn if (!isSomething()) phong cách :)

Đặc biệt kể từ khi tôi đã chọn if (!x) phong cách.

+0

+1 cho đối số nhất quán. Com'on, LaGrandMere, gần 1000;) – VonC

+0

@VonC: cảm ơn bạn đời, xong rồi, tôi có 1000 điểm đầu tiên :) – LaGrandMere

+0

vâng, tuyệt vời! Bây giờ nếu bạn chỉ có thể mất "Hi!";) và bạn sẽ phù hợp hơn với tinh thần của trang Hỏi & Đáp này (chỉ là về câu trả lời) – VonC

2
if (!isSomething()) { 

sẽ là tốt nhất theo ý kiến ​​của tôi. Bằng cách này, bạn đang giữ cho nhân vật đếm ngược, mã của bạn có thể đọc được và ! không kết nối ngay từ đầu, vì vậy chỉ bằng cách lướt qua mã, những người khác có thể thấy ý định của nó.

Các vấn đề liên quan