Kết quả 1 đến 8 của 8
  1. #1
    Ngày tham gia
    Jan 2015
    Bài viết
    0

    Lệnh Break trong tìm kiếm

    hi all,

    mình practice bài tập mảng java trong diễn đàn : http://android.vn/threads/mien-phi-khoa-hoc-lap-trinh-java.25642/

    yêu cầu đề bài: nhập vào tên sinh viên, sau đó tìm trong mảng xem tên này có tồn tại hay không ? nếu có, in ra là "có", nếu không thì in ra là "không".

    sau đây là code của mình



    Mã nguồn HTML:
    
    
    nếu mình bỏ "break" trong lênh if-else thì
    + nếu tên sinh viên nhâp vào có sẵn trong mảng thì :
    co ton tai trong danh sach
    khong co ton tai trong danh sach

    + nếu tên sinh viên nhâp vào không có sẵn trong mảng thì :
    khong co ton tai trong danh sach
    khong co ton tai trong danh sach

    ---------------------------------------------------
    mình không hiểu tại sao khi không có "break", lúc nào cũng in ra 2 thông báo.

    nếu thêm vào lênh break, thì chỉ có 1 thông báo.

    các bạn có thể giúp mình giải đáp, nếu trường hợp không có /có break thì java chạy như thế nào ?

    cảm ơn các bạn nhiều.

  2. #2
    Ngày tham gia
    Mar 2014
    Bài viết
    0
    bạn xem thế nào chứ mình chạy có ra 2 thông báo như bạn đâu :d chắc code ko sai đâu.
    mình dùng eclipse nhé ^^

  3. #3
    Ngày tham gia
    Dec 2014
    Đang ở
    HCM
    Bài viết
    0
    Trích dẫn Gửi bởi vui_ve_nao
    bạn xem thế nào chứ mình chạy có ra 2 thông báo như bạn đâu :d chắc code ko sai đâu.
    mình dùng eclipse nhé ^^
    bạn chạy code của mình luôn hay của riêng bạn. mình cũng chạy trên esclipe.

  4. #4
    Ngày tham gia
    Jun 2014
    Bài viết
    0
    Trích dẫn Gửi bởi cuocdoi
    bạn chạy code của mình luôn hay của riêng bạn. mình cũng chạy trên esclipe.
    mình copy nguyên code của bạn rồi chạy thôi :d

  5. #5
    Ngày tham gia
    Jul 2015
    Bài viết
    6
    lỗi logic rồi bạn ơi.
    1. trường hợp có break: nếu tồn tại hay không tồn tại thì vòng for cũng chỉ duyệt được phần từ đầu tiên của mảng
    2. trường hợp không break: vòng for duyệt tất cả các phần tử của mảng, nhưng với mỗi phần tử tồn tại, chương trình sẽ in 1 thông báo: có hay không

    mình nghĩ bạn nên đặt 1 cái cờ (bool flag) và sét giá trị mặc định là false, nếu trong vòng for là tồn tại thì chuyển thành true (thêm break ở đây để tối ưu hóa code), sau đó dựa vào biến flag đó để in thông báo (ngoài vòng for). mình dự là thế

  6. #6
    Ngày tham gia
    Jul 2015
    Bài viết
    15
    Trích dẫn Gửi bởi khanhmd
    lỗi logic rồi bạn ơi.
    1. trường hợp có break: nếu tồn tại hay không tồn tại thì vòng for cũng chỉ duyệt được phần từ đầu tiên của mảng
    2. trường hợp không break: vòng for duyệt tất cả các phần tử của mảng, nhưng với mỗi phần tử tồn tại, chương trình sẽ in 1 thông báo: có hay không

    mình nghĩ bạn nên đặt 1 cái cờ (bool flag) và sét giá trị mặc định là false, nếu trong vòng for là tồn tại thì chuyển thành true (thêm break ở đây để tối ưu hóa code), sau đó dựa vào biến flag đó để in thông báo (ngoài vòng for). mình dự là thế
    ờ nhỉ, mình ko đọc kỹ câu hỏi của bạn ấy, là



    Trích dẫn Gửi bởi cuocdoi
    mình không hiểu tại sao khi không có "break", lúc nào cũng in ra 2 thông báo.

    nếu thêm vào lênh break, thì chỉ có 1 thông báo.
    - vì vòng for chạy 2 lần mà ko có break thì nó sẽ in ra 2 thông báo
    - bạn in thông báo trong vòng for thì là in cho từng phần tử rồi, mảng bạn có 2 phần tử nên sẽ in ra từng ấy thông báo
    - sử dụng như cách của bạn khanhmd là ok.

  7. #7
    Ngày tham gia
    May 2015
    Bài viết
    0
    Trích dẫn Gửi bởi khanhmd
    lỗi logic rồi bạn ơi.
    1. trường hợp có break: nếu tồn tại hay không tồn tại thì vòng for cũng chỉ duyệt được phần từ đầu tiên của mảng
    2. trường hợp không break: vòng for duyệt tất cả các phần tử của mảng, nhưng với mỗi phần tử tồn tại, chương trình sẽ in 1 thông báo: có hay không

    mình nghĩ bạn nên đặt 1 cái cờ (bool flag) và sét giá trị mặc định là false, nếu trong vòng for là tồn tại thì chuyển thành true (thêm break ở đây để tối ưu hóa code), sau đó dựa vào biến flag đó để in thông báo (ngoài vòng for). mình dự là thế
    bạn khánh có thể comment vào đạon code cho mình tham khảo d9uoc không, mình chưa hiểu ý lắm.

  8. #8
    Ngày tham gia
    Jun 2014
    Bài viết
    0
    // khai bao bien flag de bao hieu ton tai hay ko ton tai
    // gia su false la khong ton tai
    boolean flag = false;
    for( i=0; i < arrstr.length ; i++)
    {
    if (tim.equals(arrstr)== true)
    {
    //co ton tai, break khoi vong lap luon cho toi uu toc do
    flag = true;
    break;
    }
    }
    if (flag) {
    system.out.println ("co ton tai trong danh sach " );
    } else {
    system.out.println ("khong ton tai trong danh sach " );
    }

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •