JAVA 배열 문에 대한 질문입니다.

안녕하세요. 현재 JAVA 수업을 학교에서 듣고 있는 자린이입니다.

다름이 아니라 교수님께서 객체 배열의 수업이 끝나갈때에

저희에게 “이렇게 하려면 어떻게 해야할까?” 하고 스쳐지나가듯 질문을 하나 던지셨습니다.

그런데 그 부분을 집에서 제가 공부하면서 코딩을 해보려고 했는데 도저히 안되는 겁니다.

오늘 하루종일 독서실에서 궁리를 해봤는데도 도저히 생각이 나지 않아서 이렇게 여쭤보겠습니다.

밑에는 자바 코드입니다.

package study_hard;

import java.util.Scanner;

class Book {
	String title, author, years;
	public Book(String title, String author,String years) {
		this.title = title;
		this.author = author;
		this.years = years;
	}
}

public class BookArray {
	public static void main(String[] args) {
		Book [] book = new Book[2];
		
		Scanner scanner = new Scanner(System.in);
		for(int i=0; i<book.length; i++) {
		System.out.print("제목>>>");
			String title = scanner.nextLine();
			System.out.print("저자>>>");
			String author = scanner.nextLine();
			System.out.print("발간년도>>>");
			String years = scanner.nextLine();
			
			book[i] = new Book(title, author, years);
			

			if (years == "0") {
				years = "발간년도 미상";
			}
		}
		
		for(int i=0; i<book.length; i++)
			System.out.print("(" + book[i].title + "," + book[i].author + "," + book[i].years + ")");
		
		scanner.close();
		
	}
}

교수님이 말씀하신 것은 발간년도를 모를때 0을 입력하면 발간년도 미상 으로 나오게 할 수 있을까? 였습니다.

그래서 if문도 써보고 try-catch 문도 써봤는데 도저히 0을 입력해도 되지가 않습니다…

아예 저 if 문을 무시하고 코딩이 됩니다. 어떻게 해야 할까요? ㅠㅠ

스트링 비교에 대해 찾아보시고, 스캐너로 다른 타입도 받을수 있다는거도 함 생각해 보세요. 환영합니다!

순서가 잘못되었네요. if문이 먼저 나와야 합니다.

1 Like