231012-C, 13-W
이번에 JAVA기초문법을 시작하면서 과제로 나온 요리 레시피 메모장을 만들어 보기로 했다.
String 변수를 선언해주고 변수에 요리 레시피를 입력, 그대로 출력 해보는 게 기초 요구사항인 듯 한데, 몇 가지 레시피를 주고 그 중에 선택해서 출력시켜보면 재미있을 것 같았다.
우선 IntelliJ로 Cooking_recipe파일을 만들어 놓고, 레시피 부터 찾아보았다. 베이컨을 상당히 좋아하기에 관련된 레시피를 3가지 찾아 메모장에 저장해 놨다.
그리고 본격적으로 작성 시작.
import java.util.Scanner;
public class Main1_HW1_Cooking_recipe {
public static void main(String[] args) {
int recipe;
System.out.println("오늘 요리의 메인 재료는 베이컨입니다~♬");
System.out.println("아래 세 레시피 중에서 선택해주세요!");
System.out.println("1 = 베이컨 말이/2 = 베이컨 에그 스크램블/3 = 베이컨 숙주 볶음");
Scanner sc = new Scanner(System.in);
recipe = Integer.parseInt(sc.nextLine());
레시피를 선택된 번호로 받기 위해 정수 타입 변수 recipe를 선언하고,
터미널에서 입력 받기 전 먼저 안내 메세지를 출력하도록 했다. (1,2,3 번 레시피 중에서 선택하도록)
그 다음 터미널에서의 입력을 위한 스캐너를 선언?,유틸을 삽입 했는데, 입력 값을 받아오는 문장을 몰라 검색해서 알아와 sc.nextLine(); 을 입력하고, 입력 값을 recipe변수에 대입시도록 했다.
처음엔
recipe = sc.nextLine();
↓
recipe = Integer.parseInt(sc.nextLine());
이렇게만 입력하고 간단한 테스트 실행을 해봤는데 빨간 전구가 떳다.
곰곰히 생각해봐도 떠오르질 않아서 전구에 뜬 예시를 그대로 클릭해봤더니 에러가 사라지더라.
내 생각으론 recipe 변수를 정수타입으로 선언했는데, 스캐너로 받아온 입력 값은 String(문자열)이기에 이를 정수로 형변환 해주기 위해 해당 식이 씌워진 게 아닌가 싶다.
자동형변환에 대해서도 배웠는데, 참조형String > 기본형Integer 인데 String을 Int 변수에 대입하려 해서 나온 문제인가도 싶다.
이건 더 알아보고 추후 노트 해야겠다.
요리 레시피 3가지를 가져와 String a, b, c를 생성, 각각 변수에 대입하고, scanner문장과 recipe선언문 사이에 배치시켰다.
int recipe;
String a = "♡베이컨 말이♡\\n" +
"1. 밥 1공기에 소금, 참기름, 깨를 약간씩 넣어 간을 한다.\\n" +
"2. 밥은 한 입 크기로 동글동글하게 만든다.\\n" +
"3. 베이컨 위에 밥을 올리고 돌돌 말아 감싼다.\\n" +
"4. 베이컨이 풀리지 않도록 이음새를 아래쪽에 놓는다.\\n" +
"5. 달군 팬에 식용유를 두르고 베이컨의 이음새가 바닥에 닿도록 하여 먼저 익히고,노릇노릇하게 굽는다.\\n" +
"6. 베이컨이 익으면 기름이 나오기 때문에 식용유는 살짝만 둘러준다.\\n" +
"7. 세상 맛있고 입에 쏙 들어가는 베이컨 말이 완성~♬\\n" +
"tip - 베이컨이 짭조름해서 밥의 간은 심심하게 해주면 좋아요.";
String b = "♡베이컨 에그 스크램블♡\\n" +
"1. 재료:왕란3개(1컵),우유1/2컵,소금1/3스푼,설탕1/3스푼,버터1/2소주컵,후추\\n" +
"2. 우선 왕란을 3개를 준비해서 그릇에 넣어 깨트려주세요\\n" +
"왕란의 크기가 가름이 안되면 종이컵기준으로 1컵의 양을 맞추어 주시면 됩니다.\\n" +
"거기에 우유1/2컵을 준비해서 우유를 넣어주세요.\\n" +
"여기서 팁!!\\n" +
"우유대신 생크림1/2컵을 사용하면 더 고소하다고 하네요\\n" +
"3. 그리고, 여기에 소금1/3스푼과 설탕1/3스푼을 넣고,\\n" +
"4. 우유,계란,소금,설탕이 잘섞이도록 풀어줍니다.\\n" +
"5. 후라이팬에 버터1/2소주컵을 준비하신후에 버터를 녹여줍니다.\\n" +
"버터가 다녹으면\\n" +
"6. 여기에 계란물을 만들어 두었던걸 부어줍니다.\\n" +
"7. 널찍한 도구로 슥슥 밀어주면서 계란이 몽글몽글해지도록 해줍니다.\\n" +
"8. 계속 슥슥 밀다보면 익은듯 안익은듯할때가 다된거라고 하네요~\\n" +
"9. 그릇에 이쁘게 담고, 후추를 뿌려주면 완성입니다!!\\n" +
"10. 뭔가 에그스크럼블만 먹으면 아쉽더라구요\\n" +
"이왕 호텔 조식처럼 먹을거 제대로 준비할께요\\n" +
"넓은 그릇에 에그스크럼블을 담고, 옆에 예쁘게 케찹을 뿌린뒤\\n" +
"11. 베이컨을 구워줍니다.\\n" +
"12. 이쁜 에그스크럼블 위에 맛나게 구워진 베이컨을 올려주면 끝!\\n" ;
String c = "♡베이컨 숙주 볶음♡\\n" +
"1.[베이컨요리]간단한 반찬 만들기 베이컨숙주볶음\\n" +
"2.재료:숙주270g,베이컨220g,통마늘6개,청경채3송이,쪽파1개\\n" +
"[청경채와 쪽파는 없으면 패스]\\n" +
"양념재료:참기름1스푼,후추조금,굴소스2스푼\\n" +
"3.숙주는 찬물에 헹구어 채반에 걸러서 물기를 제거해줍니다.\\n" +
"4.베이컨은 먹기 좋은 크기로,청경채는 2등분,쪽파는 쏭쏭 썰어주시고 통마늘은 편썰어서 재료를 준비해주세요.\\n" +
"5.기름을 두른 후라이팬에 마늘과 베이컨을 넣고~\\n" +
"6.마늘이 노릇하게 올라오기 시작하면\\n" +
"7.숙주와 청경채를 넣어줍니다.\\n" +
"8.여기에 굴소스2스푼,참기름1스푼,후추를 조금 넣은뒤\\n" +
"9.숙주의 숨이 어느정도 죽을때까지 볶아줍니다.\\n" +
"숙주는 센불에서 볶아야 물이 많이 안생기고 아삭한 식감을 느끼실수 있어요.\\n" +
"10.이제 접시에 플레이팅 해주면 완!성!\\n" +
"tip - 썰어두었던 쪽파를 위에 올려준뒤 통깨를 뿌리면 훨씬 더 맛있어 보여요~^^";
System.out.println("오늘 요리의 메인 재료는 베이컨입니다~♬");
System.out.println("아래 세 레시피 중에서 선택해주세요!");
System.out.println("1 = 베이컨 말이/2 = 베이컨 에그 스크램블/3 = 베이컨 숙주 볶음");
Scanner sc = new Scanner(System.in);
recipe = Integer.parseInt(sc.nextLine());
이전에 if문을 배운 기억을 살려 작성을 해보았다.
if (recipe == 1) {
System.out.println(a);
} else if (recipe == 2) {
System.out.println(b);
} else if (recipe == 3) {
System.out.println(c);
} else {
System.out.println("? 잘못 누르신듯 ? 오늘은 그냥 굶으세요.");
}
입력 값이 1번이면 a레시피, 2번이면 b, 3번이면 c레시피를 출력하고, 잘못 누르면 그것도 제대로 못 누르냐고 그냥 굶으라는 메세지가 나오게 만들었다.
조건문 (recipe == 1) 를 입력하면서도 빨간전구가 계속해서 괴롭혔는데,
초기엔 그냥 1을 입력 받는 것만 생각하고 스캐너 삽입, 입력값 받을 문장만 작성했었는데,
상단에
int recipe;
이렇게 변수를 선언해주니까 풀리더라.
사실 에러가 뜨던 당시 작성하는 글이 아니기에 정확한 정황이 기억이 나지 않는다.
그렇게 완성된 요리레시피
import java.util.Scanner;
public class Main1_HW1_Cooking_recipe {
public static void main(String[] args) {
int recipe; //레시피를 선택된 번호로 받기 위해 정수 타입 변수를 선언해 놓았다.
//String 변수
String a = "♡베이컨 말이♡\\n" +
"1. 밥 1공기에 소금, 참기름, 깨를 약간씩 넣어 간을 한다.\\n" +
"2. 밥은 한 입 크기로 동글동글하게 만든다.\\n" +
"3. 베이컨 위에 밥을 올리고 돌돌 말아 감싼다.\\n" +
"4. 베이컨이 풀리지 않도록 이음새를 아래쪽에 놓는다.\\n" +
"5. 달군 팬에 식용유를 두르고 베이컨의 이음새가 바닥에 닿도록 하여 먼저 익히고,노릇노릇하게 굽는다.\\n" +
"6. 베이컨이 익으면 기름이 나오기 때문에 식용유는 살짝만 둘러준다.\\n" +
"7. 세상 맛있고 입에 쏙 들어가는 베이컨 말이 완성~♬\\n" +
"tip - 베이컨이 짭조름해서 밥의 간은 심심하게 해주면 좋아요.";
String b = "♡베이컨 에그 스크램블♡\\n" +
"1. 재료:왕란3개(1컵),우유1/2컵,소금1/3스푼,설탕1/3스푼,버터1/2소주컵,후추\\n" +
"2. 우선 왕란을 3개를 준비해서 그릇에 넣어 깨트려주세요\\n" +
"왕란의 크기가 가름이 안되면 종이컵기준으로 1컵의 양을 맞추어 주시면 됩니다.\\n" +
"거기에 우유1/2컵을 준비해서 우유를 넣어주세요.\\n" +
"여기서 팁!!\\n" +
"우유대신 생크림1/2컵을 사용하면 더 고소하다고 하네요\\n" +
"3. 그리고, 여기에 소금1/3스푼과 설탕1/3스푼을 넣고,\\n" +
"4. 우유,계란,소금,설탕이 잘섞이도록 풀어줍니다.\\n" +
"5. 후라이팬에 버터1/2소주컵을 준비하신후에 버터를 녹여줍니다.\\n" +
"버터가 다녹으면\\n" +
"6. 여기에 계란물을 만들어 두었던걸 부어줍니다.\\n" +
"7. 널찍한 도구로 슥슥 밀어주면서 계란이 몽글몽글해지도록 해줍니다.\\n" +
"8. 계속 슥슥 밀다보면 익은듯 안익은듯할때가 다된거라고 하네요~\\n" +
"9. 그릇에 이쁘게 담고, 후추를 뿌려주면 완성입니다!!\\n" +
"10. 뭔가 에그스크럼블만 먹으면 아쉽더라구요\\n" +
"이왕 호텔 조식처럼 먹을거 제대로 준비할께요\\n" +
"넓은 그릇에 에그스크럼블을 담고, 옆에 예쁘게 케찹을 뿌린뒤\\n" +
"11. 베이컨을 구워줍니다.\\n" +
"12. 이쁜 에그스크럼블 위에 맛나게 구워진 베이컨을 올려주면 끝!\\n" ;
String c = "♡베이컨 숙주 볶음♡\\n" +
"1.[베이컨요리]간단한 반찬 만들기 베이컨숙주볶음\\n" +
"2.재료:숙주270g,베이컨220g,통마늘6개,청경채3송이,쪽파1개\\n" +
"[청경채와 쪽파는 없으면 패스]\\n" +
"양념재료:참기름1스푼,후추조금,굴소스2스푼\\n" +
"3.숙주는 찬물에 헹구어 채반에 걸러서 물기를 제거해줍니다.\\n" +
"4.베이컨은 먹기 좋은 크기로,청경채는 2등분,쪽파는 쏭쏭 썰어주시고 통마늘은 편썰어서 재료를 준비해주세요.\\n" +
"5.기름을 두른 후라이팬에 마늘과 베이컨을 넣고~\\n" +
"6.마늘이 노릇하게 올라오기 시작하면\\n" +
"7.숙주와 청경채를 넣어줍니다.\\n" +
"8.여기에 굴소스2스푼,참기름1스푼,후추를 조금 넣은뒤\\n" +
"9.숙주의 숨이 어느정도 죽을때까지 볶아줍니다.\\n" +
"숙주는 센불에서 볶아야 물이 많이 안생기고 아삭한 식감을 느끼실수 있어요.\\n" +
"10.이제 접시에 플레이팅 해주면 완!성!\\n" +
"tip - 썰어두었던 쪽파를 위에 올려준뒤 통깨를 뿌리면 훨씬 더 맛있어 보여요~^^";
System.out.println("오늘 요리의 메인 재료는 베이컨입니다~♬");
System.out.println("아래 세 레시피 중에서 선택해주세요!");
System.out.println("1 = 베이컨 말이/2 = 베이컨 에그 스크램블/3 = 베이컨 숙주 볶음");
Scanner sc = new Scanner(System.in);
recipe = Integer.parseInt(sc.nextLine());
if (recipe == 1) {
System.out.println(a);
System.exit(0);
} else if (recipe == 2) {
System.out.println(b);
System.exit(0);
} else if (recipe == 3) {
System.out.println(c);
System.exit(0);
} else {
System.out.println("? 잘못 누르신듯 ? 오늘은 그냥 굶으세요.");
}
}
}
import java.util.Scanner;
public class Main1_HW1_Cooking_recipe {
public static void main(String[] args) {
int recipe; //레시피를 선택된 번호로 받기 위해 정수 타입 변수를 선언해 놓았다.
//String 변수
String a = "♡베이컨 말이♡\\n" +
"1. 밥 1공기에 소금, 참기름, 깨를 약간씩 넣어 간을 한다.\\n" +
"2. 밥은 한 입 크기로 동글동글하게 만든다.\\n" +
"3. 베이컨 위에 밥을 올리고 돌돌 말아 감싼다.\\n" +
"4. 베이컨이 풀리지 않도록 이음새를 아래쪽에 놓는다.\\n" +
"5. 달군 팬에 식용유를 두르고 베이컨의 이음새가 바닥에 닿도록 하여 먼저 익히고,노릇노릇하게 굽는다.\\n" +
"6. 베이컨이 익으면 기름이 나오기 때문에 식용유는 살짝만 둘러준다.\\n" +
"7. 세상 맛있고 입에 쏙 들어가는 베이컨 말이 완성~♬\\n" +
"tip - 베이컨이 짭조름해서 밥의 간은 심심하게 해주면 좋아요.";
String b = "♡베이컨 에그 스크램블♡\\n" +
"1. 재료:왕란3개(1컵),우유1/2컵,소금1/3스푼,설탕1/3스푼,버터1/2소주컵,후추\\n" +
"2. 우선 왕란을 3개를 준비해서 그릇에 넣어 깨트려주세요\\n" +
"왕란의 크기가 가름이 안되면 종이컵기준으로 1컵의 양을 맞추어 주시면 됩니다.\\n" +
"거기에 우유1/2컵을 준비해서 우유를 넣어주세요.\\n" +
"여기서 팁!!\\n" +
"우유대신 생크림1/2컵을 사용하면 더 고소하다고 하네요\\n" +
"3. 그리고, 여기에 소금1/3스푼과 설탕1/3스푼을 넣고,\\n" +
"4. 우유,계란,소금,설탕이 잘섞이도록 풀어줍니다.\\n" +
"5. 후라이팬에 버터1/2소주컵을 준비하신후에 버터를 녹여줍니다.\\n" +
"버터가 다녹으면\\n" +
"6. 여기에 계란물을 만들어 두었던걸 부어줍니다.\\n" +
"7. 널찍한 도구로 슥슥 밀어주면서 계란이 몽글몽글해지도록 해줍니다.\\n" +
"8. 계속 슥슥 밀다보면 익은듯 안익은듯할때가 다된거라고 하네요~\\n" +
"9. 그릇에 이쁘게 담고, 후추를 뿌려주면 완성입니다!!\\n" +
"10. 뭔가 에그스크럼블만 먹으면 아쉽더라구요\\n" +
"이왕 호텔 조식처럼 먹을거 제대로 준비할께요\\n" +
"넓은 그릇에 에그스크럼블을 담고, 옆에 예쁘게 케찹을 뿌린뒤\\n" +
"11. 베이컨을 구워줍니다.\\n" +
"12. 이쁜 에그스크럼블 위에 맛나게 구워진 베이컨을 올려주면 끝!\\n" ;
String c = "♡베이컨 숙주 볶음♡\\n" +
"1.[베이컨요리]간단한 반찬 만들기 베이컨숙주볶음\\n" +
"2.재료:숙주270g,베이컨220g,통마늘6개,청경채3송이,쪽파1개\\n" +
"[청경채와 쪽파는 없으면 패스]\\n" +
"양념재료:참기름1스푼,후추조금,굴소스2스푼\\n" +
"3.숙주는 찬물에 헹구어 채반에 걸러서 물기를 제거해줍니다.\\n" +
"4.베이컨은 먹기 좋은 크기로,청경채는 2등분,쪽파는 쏭쏭 썰어주시고 통마늘은 편썰어서 재료를 준비해주세요.\\n" +
"5.기름을 두른 후라이팬에 마늘과 베이컨을 넣고~\\n" +
"6.마늘이 노릇하게 올라오기 시작하면\\n" +
"7.숙주와 청경채를 넣어줍니다.\\n" +
"8.여기에 굴소스2스푼,참기름1스푼,후추를 조금 넣은뒤\\n" +
"9.숙주의 숨이 어느정도 죽을때까지 볶아줍니다.\\n" +
"숙주는 센불에서 볶아야 물이 많이 안생기고 아삭한 식감을 느끼실수 있어요.\\n" +
"10.이제 접시에 플레이팅 해주면 완!성!\\n" +
"tip - 썰어두었던 쪽파를 위에 올려준뒤 통깨를 뿌리면 훨씬 더 맛있어 보여요~^^";
System.out.println("오늘 요리의 메인 재료는 베이컨입니다~♬");
System.out.println("아래 세 레시피 중에서 선택해주세요!");
System.out.println("1 = 베이컨 말이/2 = 베이컨 에그 스크램블/3 = 베이컨 숙주 볶음");
Scanner sc = new Scanner(System.in);
recipe = Integer.parseInt(sc.nextLine());
if (recipe == 1) {
System.out.println(a);
System.exit(0);
} else if (recipe == 2) {
System.out.println(b);
System.exit(0);
} else if (recipe == 3) {
System.out.println(c);
System.exit(0);
} else {
System.out.println("? 잘못 누르신듯 ? 오늘은 그냥 굶으세요.");
}
}
}
초기에 레시피중 고르라는 안내문이 뜨고,
2번을 클릭하자 상상만 해도 맛있는 베이컨 에그 스크램블 레시피가 잘 출력된다.
그리고 해당사항에 없는 번호를 입력할 시
굶으라는 메세지도 잘 뜬다.
사실 숫자로 입력하면 잘 뜨는데,
알파벳을 입력하면 에러 메세지가 뜬다.
아무래도 위에서
recipe = Integer.parseInt(sc.nextLine());
스캐너를 삽입함으로 터미널에서 받아오는 값은 String인데 이를 Integer값으로 형변환 하려 해서 생긴 문제인 듯 싶은데, 아직 공부부족으로 정확한 원인은 모르겠다. 이것도 추후 알아봐야겠다.
욕심을 좀 부리느라 모르는 내용 검색해보면서 활용해 보았는데, 정확하게 이해했다고는 말 못하겠다.
그래도 부린만큼의 결과는 잘 나온 듯 해서 상당히 뿌듯하다.
하지만 그래도 현재 수중에 베이컨이 없어 저 요리를 못 해먹고 있다는 건 여전히 슬프다.
참 맛있을 텐데…츄릅.
'코딩 > JAVA' 카테고리의 다른 글
TPJ-호텔 예약 프로그램 (3) (1) | 2023.11.01 |
---|---|
TPJ-호텔 예약 프로그램 (2) (1) | 2023.11.01 |
TPJ-호텔 예약 프로그램 (1) (0) | 2023.11.01 |
오케~ 또시피~ (1) | 2023.10.16 |
충격과 공포와 반전의 과제용 COOKING RECIPE (1) | 2023.10.14 |