Giải nghĩa dòng code Java

Mình tìm dc một đoạn code trong đó có 1 dòng ghi thế này mà mình không hỉu dc nghĩa của nó bác nào dịch dc chỉ dùm :slight_smile:

int id = (listStudents.size() > 0) ? (listStudents.size() + 1) : 1;

Ternary operator. Cú pháp java cơ bản

4 Likes

size() có bao giờ ra âm đâu nhỉ :smiley:

2 Likes

Nhưng có thể ra 0 mà.

int id;
if(listStudents.size() > 0)
    id = listStudents.size() + 1;
else
    id = 1;
2 Likes

Chỉ đơn giản là chuyển nền-0 (base-0) về nền-1 thôi.

int id = listStudents.size() + 1;
2 Likes

cũng có khác gì đâu 0 + 1 cũng bằng 1 mà. Nên đoạn code viết ra để CPU mua thêm việc

3 Likes

Hoặc ông nào rảnh override method size() =]]

1 Like

vậy : 1 là ý gi vây ? :flushed:

Đó là toán tử ba ngôi, đọc thêm ở đây. :slight_smile:

a = b ? c : d;

Nghĩa là a sẽ bằng c nếu b có giá trị true, nếu b false thì a sẽ bằng d.

2 Likes

giống vầy hả ???

 if (a > b) {
        result = x;
    }
    else {
        result = y;
    }

    This can be rewritten as the following statement:

    result = a > b ? x : y;

Sao bạn không tự thử đi, đọc tài liệu thêm đi là tự có câu trả lời thôi.
Ps: câu trả lời cho bạn là “đúng, giống hệt nhau”

4 Likes

Sau khi mày mò chạy thử thì mới hìu tại sau nó lại là listStudents.size() + 1 .Thì ra lúc nhập thằng id vào thì trên bảng nó lại hiên ra id là 1 thay vì là id mình nhập cái tiếp theo id =2 v…v.v thay vì là id =234 .Cho nên dòng này in ra thứ tự của danh sách hơn là id cho nên lẻ ra nó phải nằm ở cột thứ tự mới đúng .

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