Poll: [programming-style] Cách viết block of code chỉ có 1 dòng?

Các bạn cho mình biết là bạn sẽ chọn phong cách nào và tại sao?

// style 1
if ( expression )
    one-statement;

// style 2
if ( expression ) {
    one-statement;
}

// style 2b
if ( expression )
    {
    one-statement;
    }

// style 3
if ( expression ) one-statement;
  • style 1
  • style 2
  • style 2b
  • style 3
3 Likes

e chọn style 3 :wink:
Lý do: có 1 lệnh thì viết thế cho dễ đọc :smiley:

2 Likes

Style 2. Dù trường hợp nào thì cũng viết kiểu như vậy :smile:

3 Likes

1 dòng thì chọn cái đầu tiên còn nhiều dòng thì style 2b là đẹp nhấtt
p/s:

  • do thói quen
  • do nhìn đẹp
  • do dễ dàng kiểm soát
  • mình k keo tới mức tiết kiệm 1 dòng code đâu :smiley:
2 Likes

chọn 2b mà chả thấy option nào 2b nên phải chọn style 3 :smiley:

1 Like

chọn style 1 vì nó có vẻ gọn hơn dễ nhìn :joy:

1 Like

Style 2.
Trước em viết như thế này:

if ( condition )
{
        one-statement;
}

Nhưng thấy style 2 dễ nhìn nên tập lại việc bấm nút Tab.
Còn việc có 1 câu lệnh em cũng có dấu ngoặc { } vì sau này lỡ có muốn thêm câu lệnh vào thì đỡ mất công căn chỉnh ngoặc mà chỉ cần ấn Enter là code vô luôn.

if ( condition )     {
        //a new line here
        one-statement;
}
1 Like

Chuẩn 2 vì em theo chuẩn php pear :smiley:

1 Like

Nếu sau if có 1 lệnh thì thường e cũng ko dùng {} , sau có vài lệnh thì dùng style 2b cho dễ coi, sau này đọc lại cũng dễ hình dung :smiley:

1 Like

Đã sửa, lúc nãy vội quá viết nhầm, cảm ơn @dailammoc nhé.

1 Like

Mình thì phang tất, kiểu như thành thói quen!

1 Like

mình e chơi style 3 à =))

1 Like

Không biết tại sao nhưng mình dùng style 1 vì cảm thấy nó rõ ràng, trực quan nhất.
Style 2a 2b dài dòng không cần thiết, cầu toàn.
Style 3 thì có vẻ hơi ẩu, khó nhìn (đôi khi cũng dùng style 3 với statement ngắn gọn).

1 Like

theo nguyên tắt thì một lệnh không nhất thiết phải có ngoặc { }
lệnh con thì thụt vào một tab so với lệnh cha

1 Like

Trong mấy style này, mỗi cái có một nhược điểm riêng

Với style 1, code ngắn gọn. Trong hầu hết mọi trường hợp thì code kiểu này cũng tốt. Tuy nhiên, nếu sau này mình muốn thay đổi hàm này, thêm một dòng lệnh nữa. Thì khi đó ta phải thêm {}. Lúc nãy sẽ khá phiền và có thể dẫn đến lỗi không cần thiết. Code nhiều sẽ thấy cái này.

// style 1
if ( expression )
    one-statement;

Với style 2, code tuân theo một quy tắc cố định mà ta đã quy ước trước, tương tự như style 1. Luôn phải thêm {} nhưng code kiểu này sẽ đảm bảo sau này việc sử chữa sẽ tốt hơn.

// style 2
if ( expression ) {
    one-statement;
}

Với style 2b, tương tự như style 2. Nhưng ở đây Đạt cố tình tab dấu ngoặc {} chứ không phải vô tình nhé. Kiểu này không được hay lắm vì nó khó nhìn hơn.

// style 2b
if ( expression )
    {
    one-statement;
    }

Với style 3, code kiểu này cũng ổn thôi. Nhưng nó sẽ gặp vấn đề như style 1, và còn một vấn đề quan trọng hơn là lúc debug sẽ rất khó chịu. Vì debug sẽ debug theo dòng, nên mình không biết là điều kiện này có đúng hay không, có thực thi statement không.

// style 3
if ( expression ) one-statement;

Vậy chọn cái nào là tốt nhất?

1 Like

style 2b nếu không có tab cặp dấu { } vào vì visual studio nó autocomplete như vậy, sửa lại thì mệt nên để nguyên luôn :smile: lúc siêng sửa code lại cho dễ nhìn thì có dùng style 1, style 3 ít dùng vì như anh @ltd nói đúng là debug rất ức chế, chỉ xài trừ khi biết chắc cú điều kiện.

1 Like

e thì dùng style 2b không tab vì dùng visual nên theo “phong cách” của nó luôn rồi. Cách này viết code được rõ ràng, thêm nữa muốn sửa, xóa hay thêm thì rất dễ nhận ra. Nhìn thấy rõ từng bước, từng thao tác quá trình code chạy bla bla bla.
Cơ mà e không ưng cái kiểu code giống như style 1 hay 3, code nhiều nhìn rối lắm ^^

1 Like

chọn Style 2.
nhưng đôi khi dùng cả style 1 hoặc style 3 trong trường hợp điều kiện đơn giản. statement ngắn

1 Like

style 3 đơn giản vì lười nhấn nút shift + [ để ra dấu {
‘3’
bởi v khá thích python vì không cần ; hay {
=))

P/s: Mà poll của bài không đủ!
Điều kiện thì điều kiện như thế nào. Ví dụ ngắn củn như if(a) blabla; thì v quá đơn giản
Còn nếu như if(a&&b&&c&&d&&e||f||g||h) thì lúc đó code lại khác :>
Lúc đó lại chọn cách 2a. Do biết cả mớ đk như vậy ít nhiều cũng sẽ thêm vài câu lệnh xử lí vào!

1 Like

Bài này đang nói tới các trường hợp đơn giản. Như trường hợp mà @drgnz đang nói tới với điều kiện phức tạp thì Đạt sẽ làm 1 topic khác để hỏi các bạn cách giải quyết nhé :smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?