작성
·
188
답변 2
1
빠르게 코드 및 에러 메시지를 올려주신 덕분에 원인을 찾을 수 있었습니다.
바로 for 문의 맨 끝에 붙어 있는 세미콜론 ; 때문이었네요 ^^
for (HamBurger hamBurger : hamBurgers); {
위와 같이 하게 되면 for 문에서는 아무 동작을 수행하지 않고 for 문과는 무관하게 별도로 { ... } 부분이 실행되는 것처럼 동작하게 된답니다. 세미콜론이 for 문의 올바른 동작을 막아버린 것이죠.
for (HamBurger hamBurger : hamBurgers) {
위와 같이 ; 을 없애버리면 올바르게 동작하게 될 거에요!
감사합니다.
좋은 주말 되세요 😊
1
안녕하세요?
발생하는 에러 내용을 추가로 올려주실 수 있으실까요? 마우스를 올리고 있으면 메시지가 나오기도 하고 그대로 실행을 시켜도 메시지가 나올 거에요. 그리고 Hamburger 클래스가 일부밖에 보여지지 않는데 전체 소스코드를 복사 + 붙여넣기 해주시면 확인 후 도움 드리도록 하겠습니다 😊
감사합니다.
강사님 안녕하세요!
답변 감사드립니다!
말씀하신 소스코드랑 에러 내용 스크린샷 첨부해서 올려드립니다!
감사합니다!
public class Quiz07 {
public static void main(String[] args) {
HamBurger[] hamBurgers =new HamBurger[3];
hamBurgers[0] = new HamBurger();
hamBurgers[1] = new CheeseBurger();
hamBurgers[2] = new ShrimpBurger();
System.out.println("주문하신 메뉴를 만듭니다.");
System.out.println("-------------------");
for (HamBurger hamBurger : hamBurgers); {
hamBurger.cook();
System.out.println("------------------");
}
System.out.println("메뉴 준비가 완료되었습니다.");
}
}
class HamBurger {
public String name;
public HamBurger() {
this("햄버거");
}
public HamBurger(String name) {
this.name = name;
}
public void cook() {
System.out.println(this.name+ "를 만듭니다.");
System.out.println("빵 사이에 들어가는 재료는?");
System.out.println(">양상추");
System.out.println("+ 패티");
System.out.println("+ 피클");
}
}
class CheeseBurger extends HamBurger{
public CheeseBurger() {
super("치즈버거");
}
public void cook() {
super.cook();
System.out.println("+ 치즈");
}
}
class ShrimpBurger extends HamBurger {
public ShrimpBurger() {
super("새우버거");
}
public void cook() {
super.cook();
System.out.println("+ 새우");
}
}
강사님 답변보고 수정하니까 바로 작동이 되네요!!
가끔 무의식적으로 세미콜론을 넣는데 이렇게 오류가 날지는 몰랐네요 ㅜㅜ
정말 감사합니다!!!