Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Lỗi trong câu lệnh if, so sánh đúng mà kết quả vẫn không trả về

  1. #1
    Ngày gia nhập
    03 2012
    Bài viết
    5

    Mặc định Lỗi trong câu lệnh if, so sánh đúng mà kết quả vẫn không trả về

    Đề bài của mình được tóm tắt như sau: cài đặt lớp sinh viên có các thuộc tính: SBD, họ tên, địa chỉ, môn học, điểm kỳ 1, điểm kỳ 2. Viết hàm nhập dữ liệu và các toán tử tạo lập cho lớp sinh viên. VIết chương trình chính tạo danh sách sinh viên và hiển thị bảng chọn ( dùng cấu trúc case) gồm có:
    1. thêm sinh viên
    2. xem thông tin sv
    3. tìm kiếm thông tin theo tên
    4. thoát chương trình
    mình đã code được mã lệnh khá đầy đủ như dưới đây, nhưng có 1 điều vẫn không hiểu là khi chọn "tìm kiếm thông tin sv theo tên", đã nhập đúng tên sinh viên theo danh sách đã tạo lập mà vẫn không thấy trả về kết quả, các bạn có thể thấy đoạn output: mình đã nhập sv có tên "quan" và so sánh đúng theo phương thức Tim(tenSV), out vẫn báo là không tìm thấy sinh viên có tên "quan". Mong các bạn giúp đỡ mình sửa lỗi.! cám ơn các bạn nhiều
    Java Code:
    1. package baitapvenha;
    2. import java.util.*;
    3. import java.io.*;
    4.  
    5. public class BaiTapVeNha {
    6.     public static void main(String[] args) {
    7.         SinhVien A [] = new SinhVien[100];
    8.         int d = 0;int select;
    9.         do{
    10.             System.out.println ("Nhập yêu cầu theo số:\n 1. Nhập thêm sinh viên\n 2. Xem danh sách sinh viên \n 3. Tìm kiếm sinh viên theo tên \n 4. Kết thúc chương trình");
    11.             System.out.print("Bạn chọn số:");
    12.             Scanner s = new Scanner(System.in);
    13.             select = s.nextInt();
    14.             switch(select){
    15.             case 1:{
    16.                 System.out.println("Bạn vừa chọn mục thêm sinh viên");
    17.                 A[d] = new SinhVien();
    18.                 A[d].Nhap();d+=1;
    19.                 break;
    20.             }
    21.             case 2:{
    22.                 System.out.println("Bạn vừa chọn mục xem danh sách sinh viên");
    23.                 System.out.println("Tên Sv\t|SBD\t|ĐịaChỉ\t\t|Môn\t|Điểm1\t|Điểm2");
    24.                 for (int i = 0;i<d;i++){
    25.                 A[i].Xem();
    26.                 }
    27.                 break;
    28.             }
    29.             case 3:{
    30.                 System.out.println("Bạn vừa chọn tìm sinh viên theo tên");
    31.                 System.out.println("Nhập tên sinh viên cần tìm: ");
    32.                 Scanner s1 = new Scanner(System.in);
    33.                 String s2 = s1.nextLine();
    34.                 System.out.println("Kết quả tìm kiếm theo tên sinh viên: "+s2);
    35.                 for (int i = 0;i<d;i++){
    36.                 A[i].Tim(s2);
    37.                 }break;
    38.             }
    39.             case 4:
    40.             System.out.println("Bạn vừa chọn thoát chương trình");break;
    41.             default:
    42.             System.out.println("Bạn không chọn gì, Kết thúc chương trình");break;
    43.         }  
    44.        } while (select != 4);
    45.     }
    46. }
    47. class SinhVien{
    48.     public String SBD;
    49.     public String hoTen;
    50.     public String diaChi;
    51.     public String monHoc;
    52.     public int diemKy1;
    53.     public int diemKy2;
    54.     public void Nhap(){
    55.         System.out.println("Nhập SBD, Họ Tên, Địa Chỉ, Tên Môn Học, Điểm Kỳ 1, Điểm Kỳ 2: = ");
    56.         Scanner s = new Scanner(System.in);
    57.         SBD = s.nextLine();
    58.         hoTen = s.nextLine();
    59.         diaChi = s.nextLine();
    60.         monHoc = s.nextLine();
    61.         diemKy1 = s.nextInt();
    62.         diemKy2 = s.nextInt();
    63.     }
    64.     public void Tim(String tenSV){
    65.         if (tenSV==hoTen){
    66.             System.out.println("Sinh viên "+ hoTen+" có số báo danh "+SBD+" Địa chỉ tại "+diaChi+"\n Có điểm môn học"+ monHoc+" Kỳ 1 điểm số là "+ diemKy1+" và điểm kỳ 2 là "+ diemKy2);
    67.         }
    68.         else {
    69.             System.out.println("Không tìm thấy kết quả cho sinh viên có tên "+tenSV);
    70.         }
    71.     }
    72.     public void Xem(){
    73.         System.out.println(hoTen+"\t|"+SBD+"\t|"+diaChi+"\t\t|"+monHoc+"\t|"+diemKy1+"\t|"+diemKy2);
    74.     }
    75. }
    Output Code:
    1. run:
    2. Nhập yêu cầu theo số:
    3.  1. Nhập thêm sinh viên
    4.  2. Xem danh sách sinh viên
    5.  3. Tìm kiếm sinh viên theo tên
    6.  4. Kết thúc chương trình
    7. Bạn chọn số:1
    8. Bạn vừa chọn mục thêm sinh viên
    9. Nhập SBD, Họ Tên, Địa Chỉ, Tên Môn Học, Điểm Kỳ 1, Điểm Kỳ 2: =
    10. sv1
    11. quan
    12. hanoi
    13. java
    14. 7
    15. 9
    16. Nhập yêu cầu theo số:
    17.  1. Nhập thêm sinh viên
    18.  2. Xem danh sách sinh viên
    19.  3. Tìm kiếm sinh viên theo tên
    20.  4. Kết thúc chương trình
    21. Bạn chọn số:3
    22. Bạn vừa chọn tìm sinh viên theo tên
    23. Nhập tên sinh viên cần tìm:
    24. quan
    25. Kết quả tìm kiếm theo tên sinh viên: quan
    26. Không tìm thấy kết quả cho sinh viên có tên quan
    27. Nhập yêu cầu theo số:
    28.  1. Nhập thêm sinh viên
    29.  2. Xem danh sách sinh viên
    30.  3. Tìm kiếm sinh viên theo tên
    31.  4. Kết thúc chương trình
    32. Bạn chọn số:4
    33. Bạn vừa chọn thoát chương trình
    34. BUILD SUCCESSFUL (total time: 39 seconds)

  2. #2
    Ngày gia nhập
    02 2012
    Bài viết
    8

    sao ko thấy get set ở đâu hết à thêm vào đi cho đúng oop 1 chút

  3. #3
    Ngày gia nhập
    03 2010
    Bài viết
    236

    Bạn thử sửa lại đoàn này.
    Java Code:
    1.   if (tenSV.equalsIgnoreCase(hoTen)){
    2.             System.out.println("Sinh viên "+ hoTen+" có số báo danh "+SBD+" Địa chỉ tại "+diaChi+"\n Có điểm môn học"+ monHoc+" Kỳ 1 điểm số là "+ diemKy1+" và điểm kỳ 2 là "+ diemKy2);
    3.         }

  4. #4
    Ngày gia nhập
    03 2012
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi trungvx Xem bài viết
    Bạn thử sửa lại đoàn này.
    Java Code:
    1.   if (tenSV.equalsIgnoreCase(hoTen)){
    2.             System.out.println("Sinh viên "+ hoTen+" có số báo danh "+SBD+" Địa chỉ tại "+diaChi+"\n Có điểm môn học"+ monHoc+" Kỳ 1 điểm số là "+ diemKy1+" và điểm kỳ 2 là "+ diemKy2);
    3.         }
    cám ơn bạn nhiều lắm mình đã sửa được lỗi rồi, nhưng mình chưa rõ đoạn code này ý nghĩa như thế nào ? mong bạn chỉ rõ hơn chút
    Code:
    tenSV.equalsIgnoreCase(hoTen)

  5. #5
    Ngày gia nhập
    08 2011
    Bài viết
    117

    Trích dẫn Nguyên bản được gửi bởi overallstar Xem bài viết
    cám ơn bạn nhiều lắm mình đã sửa được lỗi rồi, nhưng mình chưa rõ đoạn code này ý nghĩa như thế nào ? mong bạn chỉ rõ hơn chút
    Code:
    tenSV.equalsIgnoreCase(hoTen)
    chịu khó search đi bạn .
    equalsIgnoreCase >>> phương thức so sánh không phân biệt hoa thường. ex : hello với HEllO vẫn cho là bằng nhau.

    ps : bây giờ mới biết 4rum có box JAVA

  6. #6
    Ngày gia nhập
    03 2012
    Bài viết
    5

    Mặc định Lỗi trong câu lệnh if, so sánh đúng mà kết quả vẫn không trả về

    nhưng tại sao việc so sánh if(hoTen == tenSV) của mình lại không sử dụng được ????

  7. #7
    Ngày gia nhập
    08 2011
    Bài viết
    117

    Trích dẫn Nguyên bản được gửi bởi overallstar Xem bài viết
    nhưng tại sao việc so sánh if(hoTen == tenSV) của mình lại không sử dụng được ????
    == tests for reference equality.

    .equals tests for value equality.

    hiểu rồi chứ ?

  8. #8
    Ngày gia nhập
    03 2012
    Bài viết
    5

    mình hiểu rồi, cám ơn bạn

  9. #9
    Ngày gia nhập
    09 2011
    Nơi ở
    Cầu Giấy - Hà Nội
    Bài viết
    67

    Bài không có tính chất bao đóng....
    -*- CÔNG VIỆC BẬN RỘN -*-
    My Tutorials on Youtube Channel: http://youtube.com/user/rinkatori90
    My blog: http://code4lifevn.blogspot.com

  10. #10
    Ngày gia nhập
    03 2012
    Bài viết
    5

    Bài không có tính bao đóng là sao hả bạn? mình mới học Java kì này nên chưa hiểu hết, mong bạn góp ý cho mình.

Các đề tài tương tự

  1. MS SQL Lỗi Truy vấn lồng không trả về đúng kết quả ?
    Gửi bởi sinpro trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 0
    Bài viết cuối: 16-09-2013, 11:01 AM
  2. Sắp xếp kiểu bubble sort (nổi bọt). Ko trả về kết quả đúng.Help me!!
    Gửi bởi MrCode.chicken trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 4
    Bài viết cuối: 11-08-2012, 12:00 AM
  3. Code đếm khoảng trắng chạy lỗi kiểm tra không ra đúng kết quả?
    Gửi bởi higushima trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 27-11-2011, 08:15 PM
  4. Nhap,xuat ma trận vuông không hiện đúng kết quả?
    Gửi bởi Thuyxda trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 13-05-2011, 02:49 PM
  5. ma trận trên C++ | Cộng 2 ma trận và in ra kết quả không đúng?
    Gửi bởi principles_007 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-01-2010, 09:20 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn