Code quản lý sách và tác giả sách bị sai

Em đang học java qua video này

case 1:
	System.out.println("Nhap so sach can them: ");
	 n = Integer.parseInt(input.nextLine());
	 for(int i =0; i< n;i++) {
		 Book book =new Book();
		 book.input();
		 boolean isFind = false;
		 for (int j = 0; j < bookList.size(); j++) {
			if(authorList.get(j).getNickname().equalsIgnoreCase(book.getNickname())) {
				isFind = true;
				break;
			}
		}
		 if(!isFind) {
			 Author author = new Author(book.getNickname());
			 author.input();
			 authorList.add(author);
		 }
		 bookList.add(book);
	 }
	break;

Khi em thực hiện xong hết các code của video trên , em Test thì kq đều giống như trên video nhưng khi em thực hiện kết quả code trên nó lại sai . Sau khi em nhập xong thông tin tác giả đến phần nhập thông tin sách . Tới phần nhập vào bút danh của tác giả , Mặc dù bút danh đó đã có rồi nhưng nó vẫn bắt nhập vào thông tin tác giả , em đã kiểm tra kỹ về code nhưng ko biết sai chỗ nào . Yêu cầu bài toán là Sau khi nhập vào thông tin tác giả, nhập vào thông tin sách nếu tới phần nhập bút danh không có trùng nhau thì cần nhập thêm thông tin tác giả vì mỗi tác giả chỉ được 1 bút danh . Mọi người giúp em với ạ .

Cách làm của bạn không ổn, cho dù nó kiểm đúng. Chỉ cần cố tình nhập 2 lần là sẽ nhập thành công, mặc dù bút danh có rồi.

Còn đoạn này:

Bắt nhập lại đấy, nhập một tác giả chưa có.

Đoạn này phải dùng 1 vòng lặp để bắt nhập lại cho đến khi nào không trùng.
1 cách khác là khi nhập trùng thì chỉ cần thông báo đã có và kết thúc việc nhập.
Không có đầy đủ mã thì cũng khó để đánh giá hiệu quả.

Đoạn mã trên của bạn là nửa nạc - nửa mỡ.

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