Bài tập in ra màn hình cán bộ nam nhỏ tuổi nhất

Như tiêu đề, em có bài tập là nhập tên, năm sinh, giới tính của 3 cán bộ. Tìm và in ra màn hình thông tin của cán bộ NAM trẻ nhất.
Em làm được tìm người trẻ nhất mà bí chỗ là chỉ xuất cán bộ NAM trẻ nhất thôi.
Code em ở dưới. Chỉ dùng if else và switch case ( JAVA)

String canBo1, canBo2, canBo3, gioiTinh1, gioiTinh2, gioiTinh3;
int namSinh1, namSinh2, namSinh3, max;

Scanner scan = new Scanner(System.in);
//Cho người dùng nhập và gán Tên, Năm Sinh, Giới Tính của cán bộ 1
System.out.println("Mời Nhập Tên Của Cán Bộ Thứ Nhất: ");
canBo1 = scan.nextLine();

System.out.println("Mời Nhập Năm Sinh Của Cán Bộ Thứ Nhất: ");
namSinh1 = Integer.parseInt(scan.nextLine());

System.out.println("Mời Nhập Giới Tính Của Cán Bộ Thứ Nhất: ");
gioiTinh1 = scan.nextLine();

//Cho người dùng nhập và gán Tên, Năm Sinh, Giới Tính của cán bộ 2
System.out.println("Mời Nhập Tên Của Cán Bộ Thứ Hai: ");
canBo2 = scan.nextLine();

System.out.println("Mời Nhập Năm Sinh Của Cán Bộ Thứ Hai: ");
namSinh2 = Integer.parseInt(scan.nextLine());

System.out.println("Mời Nhập Giới Tính Của Cán Bộ Thứ Hai: ");
gioiTinh2 = scan.nextLine();
//Cho người dùng nhập và gán Tên, Năm Sinh, Giới Tính của cán bộ 3
System.out.println("Mời Nhập Tên Của Cán Bộ Thứ Ba: ");
canBo3 = scan.nextLine();

System.out.println("Mời Nhập Năm Sinh Của Cán Bộ Thứ Ba: ");
namSinh3 = Integer.parseInt(scan.nextLine());

System.out.println("Mời Nhập Giới Tính Của Cán Bộ Thứ Ba: ");
gioiTinh3 = scan.nextLine();
//Đặt namsinh cán bộ 1 lớn nhất để là người trẻ nhất
max = namSinh1;
// So sánh năm sinh cán bộ 2 và 3 với max để tìm ai trẻ hơn
if (  namSinh2 > max) {
	max = namSinh2;
	System.out.println("Cán Bộ Có Tuổi Nhỏ Nhất Là " + canBo2 + " Giới Tính Là "+ gioiTinh2 + " Năm Sinh Là " + namSinh2);
}if (namSinh3 > max) {
	max = namSinh3;
	System.out.println("Cán Bộ Có Tuổi Nhỏ Nhất Là " + canBo3 + " Giới Tính Là "+ gioiTinh3 + " Năm Sinh Là " + namSinh3);
}
System.out.println("Cán Bộ Có Tuổi Nhỏ Nhất Là " + canBo1 + " Giới Tính Là "+ gioiTinh1 + " Năm Sinh Là " + namSinh1);

bạn phải tạo class Cán Bộ, sau đó tạo 3 object cán bộ. 3 object này lưu vào một mảng. sau đó dùng for cho chạy từ đầu mảng đến cuối mảng so sánh từng thuộc tính của đối tượng cán bộ.

4 Likes

bạn không có sử dụng gì đến thuộc tính giới tính trong điều kiện if của bạn nên nó không lọc được giới tính nam thôi. VD : if(canbo1.namSinh > max && canbo1.gioiTinh=="Nam")

3 Likes

Mình mới học cơ bản nên chưa học class và objct

Tks bạn.

		max = namSinh1;
		// So sánh năm sinh cán bộ 2 và 3 với max để tìm ai trẻ hơn
		if (  namSinh2 > max && gioiTinh2 == " Nam") {
			max = namSinh2;
			System.out.println("Cán Bộ Có Tuổi Nhỏ Nhất Là " + canBo2 + " Giới Tính Là "+ gioiTinh2 + " Năm Sinh Là " + namSinh2);
		}if (namSinh3 > max && gioiTinh3 == "Nam" ) {
			max = namSinh3;
			System.out.println("Cán Bộ Có Tuổi Nhỏ Nhất Là " + canBo3 + " Giới Tính Là "+ gioiTinh3 + " Năm Sinh Là " + namSinh3);
		}
		System.out.println("Cán Bộ Có Tuổi Nhỏ Nhất Là " + canBo1 + " Giới Tính Là "+ gioiTinh1 + " Năm Sinh Là " + namSinh1);

Như này mình nên thêm if ntn để nó xét luôn canbo1.

1 Like

Có vài điều với bạn:

  1. Java là hướng đối tượng, nên tạo đối tượng cho Cán bộ để dễ lưu trữ và xử lý. Nhưng theo bạn nói thì bạn chưa học đến. Làm như thế này cũng được. Mà bạn đã học đến phần mảng chưa nhể?
  2. Bạn đã học câu lệnh điều kiện if, liệu có học luôn elseelse if chưa?
  3. Tìm người nhỏ tuổi nhất mà lại như làm tìm người lớn tuổi nhất thế? Xem lại cách so sánh nhé. > hay <.
2 Likes
  1. Em chưa học mảng ạ
  2. Em học else if rồi.
  3. Bài cho nhập năm sinh mà bác. Nên năm sinh ai lớn nhất thì tuổi sẽ nhỏ nhất’
1 Like

Ồ, mình nhầm lẫn rồi, xin lỗi nhé. :sweat_smile:

Bạn phải dùng else if đấy.

3 Likes

Hiện Tại mình kẹt ở chỗ của canBo1 ấy bạn. Code mình nè

max = namSinh1;
// So sánh năm sinh cán bộ 2 và 3 với max để tìm ai trẻ hơn
if (  namSinh2 > max && gioiTinh2 == " Nam") {
	max = namSinh2;
	System.out.println("Cán Bộ Có Tuổi Nhỏ Nhất Là " + canBo2 + " Giới Tính Là "+ gioiTinh2 + " Năm Sinh Là " + namSinh2);
}if (namSinh3 > max && gioiTinh3 == "Nam" ) {
	max = namSinh3;
	System.out.println("Cán Bộ Có Tuổi Nhỏ Nhất Là " + canBo3 + " Giới Tính Là "+ gioiTinh3 + " Năm Sinh Là " + namSinh3);
}
System.out.println("Cán Bộ Có Tuổi Nhỏ Nhất Là " + canBo1 + " Giới Tính Là "+ gioiTinh1 + " Năm Sinh Là " + namSinh1);
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?