본문 바로가기

개발/Java

[Head First Java] Chapter3 연습문제 컴파일러가 되어봅시다. B문제

소스가 컴파일을 할 수 있는지 확인

문제 소스
public class Hobbits {
	String name;
	public static void main(String[] args) {
		Hobbits[] h = new Hobbits[3];
		int z = 0;
		while(z < 4){
			z = z + 1;
			h[z] = new Hobbits();
			h[z].name = "bilbo";
			if(z == 1){
				h[z].name = "frodo";
			}
			if(z == 2){
				h[z].name = "sam";
			}
			System.out.print(h[z].name + " is a ");
			System.out.println("good Hobbit name");
		}
	}
}
정답
public class Hobbits {
	String name;
	public static void main(String[] args) {
		Hobbits[] h = new Hobbits[3];
		int z = - 1;
		while(z < 2){
			z = z + 1;
			h[z] = new Hobbits();
			h[z].name = "bilbo";
			if(z == 1){
				h[z].name = "frodo";
			}
			if(z == 2){
				h[z].name = "sam";
			}
			System.out.print(h[z].name + " is a ");
			System.out.println("good Hobbit name");
		}
	}
}


배열 인덱스 순서가 맞지 않음.
배열의 인덱스는 0부터 시작한다.
출력 결과
bilbo is a good Hobbit name
frodo is a good Hobbit name
sam is a good Hobbit name