- 복습
package day3;
public class 복습 {
public static void main(String[] args) {
// TODO Auto-generated method stub
> 문제) for문으로 1~100까지 짝수의 합
> for(int i = i <=100 ; i=i+2); 를 사용하지 않고
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum = sum + i;
}
}
System.out.println(sum);
>특정 for문을 사용하지 않고 1~100까지 출력하는 식을 만드는게 문제입니다
>먼저 변수 sum에 0을 대입하여 수가 0인 변수를 만들고
>for문을 작성하였습니다 for (int i = 1; i <= 100; i++)
>이렇게 작성하고 프린트하면 1~100까지만 출력됩니다
>그렇기에 for문 안에 if문을 넣어 1씩 증가하는 i가 2로 나누었을때 나머지가 0과 같다면
>수가 0인 변수 sum에 더해주도록 하였습니다
>이후 for문 밖에서 sum을 프린트하여 2로 나누었을때 나머지가 0인 i를 모두 더한 값을
>출력하였습니다
> 문제) while문으로 1~100까지 홀수의 합 구하기
int a = 1;
int sum = 0;
while(a <= 100) {
if(a%2 != 0) {
sum += a;
}
a++;
}
System.out.println(sum);
>for문으로 짝수의 합을 구했기에 이제 while 문을 사용하여 홀수의 값을 구하는게 문제입니다
>먼저 수가 1 인 변수 a를 만들었습니다
>이후 수가 0 인 변수 sum을 만들고
>while문을 작성했습니다 while(a <= 100) 이렇게 조건을건 이유는
>수가 1인 변수 a가 100 이상이 될때까지 계속 반복하게 하기 위함입니다
>아래 실행문에는 if를 넣어 a가 2로 나누었을때 0과 같지 않다면
>수가 0인 sum에 a를 더하게 하였습니다
>이후 if문 밖에서 반복마다 변수 a에 1씩 더해지게 만들어 100까지 증가할 수 있게 조건을 설정
>이렇게 a가 1씩 증가하며 2로 나누었을때 나머지가 1이 아니라면 수가 0인 변수 sum에 더해집니다
>이후 a가 100이되면 while조건문을 빠져나가고
>이후 밖에서 sum을 프린트하야 1~100까지의 홀수의 합을 출력하게 하였습니다
- 추가 예시 문제
>1번. 실행 불가능한 경우 >1번. 실행을 가능하게 하는 경우
for(int i=0; i<10; i++) { for(int i=0; i<10; i++) {
int sum = 0; int sum = 0;
sum=10; sum=10;
} System.out.println(sum);
System.out.println(sum); }
!자바에서는 중괄호({})로 묶인 코드 블록 내에서
!변수가 선언되면 해당 변수는 그 블록 내에서만 유효합니다.
>스코프의 이해와 범위에 대한 이해를 돕는 예시입니다
>변수 sum은 for문의 스코프 안에서 만들어 졌고 선언되었기 때문에
>for문의 스코프 밖에서는 출력 불가능합니다
>그렇기 때문에 System.out.println(sum);를 for문의 스코프 안에 넣어줘야합니다
>2번. 실행 불가능한 경우 >2번. 실행 가능한 경우
int num; int sum = 0;
for(int i=0; i<10; i++) { for(int i=0; i<10; i++) {
num = 10; sum=10;
} }
System.out.println(num); System.out.println(sum);
!! 자바에서는 이런경우 오류로 보기때문에 실행되지 않는다
>변수 선언시 아무것도 대입하지 않았을때 프린트를 한다면 어떻게 되는지 이해를 돕는 예시입니다
>변수 num에 아무것도 대입하지 않고 for문의 스코프 안에서 변수 num에 10을 대입했습니다
>이후 for문의 스코프 밖에서 num을 출력하는 경우 밖에 있는 num에는 아무것도 대입하지 않았기에
>출력이 이루어지지 않습니다 그렇기에 출력을하기 위해서는 오른쪽과 같이
>밖에서 변수에 0이라도 대입을 진행해주어야 합니다
>3번. 실행 불가능한 경우 >3번. 실행 가능한 경우
int num = 0; int num = 0;
for(int i=0; i<10; i++) { for(int i=0; i<10; i++) {
int sum = 0; int sum = 0;
num = 10; num = 10;
int test = 1; int test = 1;
} System.out.println(test);
System.out.println(test); }
System.out.println(num); System.out.println(num);
>1번 예시에서 좀 더 길어진 for문입니다
>이번에는 변수 num에 0을 잘 대입했고 for문의 스코프 안해서 선언한 변수 sum도 출력하지 않습니다
>하지만 for문의 스코프 안해서 선언한 변수 test를 밖에서 프린트하였기에
>jave에서는 오류로 판단하고 실행하지 않습니다
>그렇기에 밖에서 프린트를 명령한 test의 프린트 명령문을 for문의 스코프 안으로 넣어줘야합니다
- 같은 변수 선언 사용
>같은 변수 사용 불가능한 경우 >같은 변수 사용 가능한경우
int num = 0; int num = 0;
for(int i=0; i<10; i++) { for(int i=0; i<10; i++) {
num = 10; num = 10;
int test = 1; int test = 1;
if(true) { System.out.println(test);
int test = 7; }
} int test = 8;
} System.out.println(test);
System.out.println(test); System.out.println(num);
>변수 test를 예시로 스코프의 이해를 돕는 예시문입니다
>이 예시로 밖에서 선언한 변수test를 for문 안으로 넣어도 실행이 가능하다는걸 알 수 있습니다
>하지만 for문의 스코프 밖에 test변수를 선언하지 않고 for문과 if문의 스코프에만 변수test를 선언한 경우
>for문의 밖에서 프린트 메서드를 사용하여 test를 출력하면 오류가 발생하는걸 알 수 있습니다
>이것으로 같은 변수를 중복해서 사용하는 방법을 알 수 있겠습니다
- Scanner_ nextInt_예시문
Scanner sc = new Scanner(System.in);
System.out.print("숫자입력>");
int num = sc.nextInt();
System.out.println(num);
> 문제) 숫자를 계속 입력받다가 0이 입력되면 '끝'출력
// Scanner sc = new Scanner(System.in);
// System.out.print("숫자입력>");
// int num = sc.nextInt();
// while(true) {
// if(num == 0 ) {
// break;
// }
// System.out.print("숫자입력>");
// num = sc.nextInt();
// }
// System.out.println("0입니다");
// Scanner sc = new Scanner(System.in);
// int num = 1;
// while(num != 0) {
// System.out.print("숫자 입력>");
// num = sc.nextInt();
// }System.out.println("0입니다");
- 응용 자판기 만들기
>자판기 만들기 Scanner sc = new Scanner(System.in); long money = 10000; boolean num = true; while (num) { System.out.println("====자판기====\t 현재잔액 : "+money+"원"); System.out.println("1.콜라(1000원) 2.사이다(1200원) 3.우유(1500원) 0.종료"); System.out.print("메뉴선택>"); int sum = sc.nextInt(); if(sum == 1 && money >= 1000) { money = money - 1000; System.out.println("콜라 구입성공!"); }else if(sum == 2 && money >= 1200) { money -= 1200; System.out.println("사이다 구입성공!"); }else if(sum == 3 && money >= 1500) { money -= 1500; System.out.println("우유 구입성공!"); }else if(sum == 0) { num = false; System.out.println("종료"); }else if(money > 0) { System.out.println("잔액이 부족합니다"); break; } else { System.out.println("없는 메뉴입니다"); break; } } > 길지만 원리를 이해한다면 쉽게 읽을 수 있습니다 > 먼저 money에 10000을 대입하고 변수 num에 참을 대입 > while에 num을 대입하여 계속 반복하게 만듭니다 > 이렇게 반복하게 만들경우 반복문인 while의 스코프를 빠져나가기 전까지 while문 안을 반복합니다 > 이후 사용자가 입력한 숫자를 변수 sum에 가져옵니다 > 이렇게 가져온 sum을 if문에 넣어 조건을 만들어주고 > 조건이 충족되면 메뉴의 가격 만큼 money에서 빠지게 만들어줍니다 > "잔액이 부족합니다"를 출력하는 else if에 money 가 0보다 크다면을 넣은 이유는 > money가 1000원 미만일 경우 살 수 있는 메뉴가 없기 때문입니다 이후 break;를 이용해 > 반복문을 빠져나가게 됩니다 > money가 있지만 조건에 맞지 않는 수를 입력할경우 else를 이용하여 "없는 메뉴입니다"를 출력 > 마찬가지로 break;를 이용하여 반복문을 빠져나가게 만들었습니다 break;를 지우면 다시 반복문을 반복합니다
- 로그인 창 만들어보기
public class Ex01_login {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String id = "test";
String pw = "test";
boolean run = true;
while(run) {
System.out.println("=====로그인=====");
System.out.print("id:입력");
String loginId = sc.next();
System.out.print("pw:입력");
String loginPw = sc.next();
if(loginId.equals(id) && loginPw.equals(pw)) {
System.out.println("로그인 성공");
run = false;
}else {
System.out.println("로그인 실패");
System.out.println("다시시도(Y/N)");
String Y = sc.next();
if(Y.equals("N")||Y.equals("n")) {
System.out.println("로그인 종료");
break;
}else if(Y.equals("Y")||Y.equals("y")){
continue;
}
}
}
> 반복문 while에 if문을 넣어 조건을 반복하는 예시입니다
> 아이디와 패스워드를 반복문 밖의 String 변수에 대입하고
> 각각 id와 pw로 선언하였습니다
> 이후 while안에 반복할 메서드를 입력
> if문을 이용하여 반복문을 빠져나갈 조건을 설정합니다
> if(loginId.equals(id) && loginPw.equals(pw)) 여기서 equals은
> 변수 String이 다른 변수와 같다면을 뜻합니다
> &&으로 연결했기에 변수 id와 pw가 사용자가 입력한 값과 같다면 "로그인 성공"이 출력됩니다
> 이후 true;를 넣은 boolean 변수 run을 false;로 바꾸어 반복문이 실행되지 않게 했습니다
> if(loginId.equals(id) && loginPw.equals(pw)) 의 조건에 맞지 않는다면
> else로 내려와 "로그인 실패를" 프린트하게 했습니다
> 이후 if문에 조건 if(Y.equals("N")||Y.equals("n"))을 설정하여
> N,n을 누르면 "로그인 종료" 후 break;로 반복문을 빠져나오게 만들었습니다
> else if에는 Y,y를 입력하면 continue;를 실행하여
> 반복문을 다시 반복하게 만들었습니다
- 3일동안 배운 변수와 문법을 사용하여 만들어보기
!!키오스크를 만들어봤습니다 크게 3가지로 분류하고 각각 3개씩 메뉴를 넣어봤습니다
!!먼저 돈을 넣어야하는 구조로 선택한 메뉴의 가격에 따라 갯수만큼 누적금액은 얼마인지
!!돈이 부족하면 얼마가 부족한지 남는다면 얼마가 남는지 출력합니다
!!메뉴 1~3이 아닌 다른 메뉴를 입력하면 없는 메뉴라는 문구가 출력됩니다
!!이후 메뉴 주문을 누르게되면 거스름돈은 얼마가 나오는지 출력하였습니다
!!모두 가져오면 너무 길기 때문에 대분류 3가지중 1가지만 올려두겠습니다
package day3;
import java.util.Scanner;
public class 만들어보기_수정용 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int a = 4500;
int b = 3000;
int c = 7500;
long hab = 0;
boolean r = true;
while (r) {
System.out.println("====키오스크====");
System.out.print("얼마를 투입하시겠습니까?>");
int money = sc.nextInt();
System.out.println("투입금액은 " + money + "원입니다");
System.out.print("\n");
while (r) {
System.out.println("1.한식 2.중식 3.일식");
System.out.print("음식 종류를 선택해주세요");
int me = sc.nextInt();
System.out.print("\n");
if (me == 1) {
System.out.println("1번.라면(4500원) 2번. 김밥(3000원) 3번.제육(7500원)");
System.out.print("메뉴를 선택해주세요");
int me1 = sc.nextInt();
System.out.print("\n");
if (me1 == 1) {
System.out.println("라면을 선택하셨습니다 현재 누적 금액은" + (hab + a) + "입니다");
hab = hab + a;
System.out.println("예상 반환 금액은" + (money - hab) + "입니다");
System.out.print("\n");
System.out.print("추가 구매를 원하시면 1 결제를 원하시면 2");
int a1 = sc.nextInt();
System.out.print("\n");
if (a1 == 1) {
continue;
} else if (a1 == 2) {
r = false;
}
} else if (me1 == 2) {
System.out.println("김밥을 선택하셨습니다 현재 누적 금액은" + (hab + b) + "입니다");
hab = hab + b;
System.out.println("예상 반환 금액은" + (money - hab) + "입니다");
System.out.print("\n");
System.out.println("추가 구매를 원하시면 1 결제를 원하시면 2");
int a2 = sc.nextInt();
if (a2 == 1) {
continue;
} else if (a2 == 2) {
r = false;
}
} else if (me1 == 3) {
System.out.println("제육을 선택하셨습니다 현재 누적 음액은" + (hab + c) + "입니다");
hab = hab + c;
System.out.println("예상 반환 금액은" + (money - hab) + "입니다");
System.out.print("\n");
System.out.println("추가 구매를 원하시면 1 결제를 원하시면 2");
int a3 = sc.nextInt();
if (a3 == 1) {
continue;
} else if (a3 == 2) {
r = false;
}
} else if (!(me1 ==1 || me1 == 2|| me1 ==3)) {
System.out.println("없는 메뉴입니다");
}
}
}
}
}
'나의 수업일지' 카테고리의 다른 글
인천 일보 아카데미 (주말 숙제) (0) | 2023.02.27 |
---|---|
인천 일보 아카데미 4일차 up&down게임_만들기 / 숫자 랜덤 출력 (0) | 2023.02.24 |
인천일보 아카데미 2일차 조건문 switch / 반복문 for / 반복문 while (1) | 2023.02.22 |
인천일보 아카데미 1일차 (오후) 조건문 if 와 Scanner (1) | 2023.02.21 |
인천일보 아카데미 수업 1일차 (오전) 변수 타입 _ 강제 형변환 (0) | 2023.02.21 |
- 복습
package day3;
public class 복습 {
public static void main(String[] args) {
// TODO Auto-generated method stub
> 문제) for문으로 1~100까지 짝수의 합
> for(int i = i <=100 ; i=i+2); 를 사용하지 않고
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum = sum + i;
}
}
System.out.println(sum);
>특정 for문을 사용하지 않고 1~100까지 출력하는 식을 만드는게 문제입니다
>먼저 변수 sum에 0을 대입하여 수가 0인 변수를 만들고
>for문을 작성하였습니다 for (int i = 1; i <= 100; i++)
>이렇게 작성하고 프린트하면 1~100까지만 출력됩니다
>그렇기에 for문 안에 if문을 넣어 1씩 증가하는 i가 2로 나누었을때 나머지가 0과 같다면
>수가 0인 변수 sum에 더해주도록 하였습니다
>이후 for문 밖에서 sum을 프린트하여 2로 나누었을때 나머지가 0인 i를 모두 더한 값을
>출력하였습니다
> 문제) while문으로 1~100까지 홀수의 합 구하기
int a = 1;
int sum = 0;
while(a <= 100) {
if(a%2 != 0) {
sum += a;
}
a++;
}
System.out.println(sum);
>for문으로 짝수의 합을 구했기에 이제 while 문을 사용하여 홀수의 값을 구하는게 문제입니다
>먼저 수가 1 인 변수 a를 만들었습니다
>이후 수가 0 인 변수 sum을 만들고
>while문을 작성했습니다 while(a <= 100) 이렇게 조건을건 이유는
>수가 1인 변수 a가 100 이상이 될때까지 계속 반복하게 하기 위함입니다
>아래 실행문에는 if를 넣어 a가 2로 나누었을때 0과 같지 않다면
>수가 0인 sum에 a를 더하게 하였습니다
>이후 if문 밖에서 반복마다 변수 a에 1씩 더해지게 만들어 100까지 증가할 수 있게 조건을 설정
>이렇게 a가 1씩 증가하며 2로 나누었을때 나머지가 1이 아니라면 수가 0인 변수 sum에 더해집니다
>이후 a가 100이되면 while조건문을 빠져나가고
>이후 밖에서 sum을 프린트하야 1~100까지의 홀수의 합을 출력하게 하였습니다
- 추가 예시 문제
>1번. 실행 불가능한 경우 >1번. 실행을 가능하게 하는 경우
for(int i=0; i<10; i++) { for(int i=0; i<10; i++) {
int sum = 0; int sum = 0;
sum=10; sum=10;
} System.out.println(sum);
System.out.println(sum); }
!자바에서는 중괄호({})로 묶인 코드 블록 내에서
!변수가 선언되면 해당 변수는 그 블록 내에서만 유효합니다.
>스코프의 이해와 범위에 대한 이해를 돕는 예시입니다
>변수 sum은 for문의 스코프 안에서 만들어 졌고 선언되었기 때문에
>for문의 스코프 밖에서는 출력 불가능합니다
>그렇기 때문에 System.out.println(sum);를 for문의 스코프 안에 넣어줘야합니다
>2번. 실행 불가능한 경우 >2번. 실행 가능한 경우
int num; int sum = 0;
for(int i=0; i<10; i++) { for(int i=0; i<10; i++) {
num = 10; sum=10;
} }
System.out.println(num); System.out.println(sum);
!! 자바에서는 이런경우 오류로 보기때문에 실행되지 않는다
>변수 선언시 아무것도 대입하지 않았을때 프린트를 한다면 어떻게 되는지 이해를 돕는 예시입니다
>변수 num에 아무것도 대입하지 않고 for문의 스코프 안에서 변수 num에 10을 대입했습니다
>이후 for문의 스코프 밖에서 num을 출력하는 경우 밖에 있는 num에는 아무것도 대입하지 않았기에
>출력이 이루어지지 않습니다 그렇기에 출력을하기 위해서는 오른쪽과 같이
>밖에서 변수에 0이라도 대입을 진행해주어야 합니다
>3번. 실행 불가능한 경우 >3번. 실행 가능한 경우
int num = 0; int num = 0;
for(int i=0; i<10; i++) { for(int i=0; i<10; i++) {
int sum = 0; int sum = 0;
num = 10; num = 10;
int test = 1; int test = 1;
} System.out.println(test);
System.out.println(test); }
System.out.println(num); System.out.println(num);
>1번 예시에서 좀 더 길어진 for문입니다
>이번에는 변수 num에 0을 잘 대입했고 for문의 스코프 안해서 선언한 변수 sum도 출력하지 않습니다
>하지만 for문의 스코프 안해서 선언한 변수 test를 밖에서 프린트하였기에
>jave에서는 오류로 판단하고 실행하지 않습니다
>그렇기에 밖에서 프린트를 명령한 test의 프린트 명령문을 for문의 스코프 안으로 넣어줘야합니다
- 같은 변수 선언 사용
>같은 변수 사용 불가능한 경우 >같은 변수 사용 가능한경우
int num = 0; int num = 0;
for(int i=0; i<10; i++) { for(int i=0; i<10; i++) {
num = 10; num = 10;
int test = 1; int test = 1;
if(true) { System.out.println(test);
int test = 7; }
} int test = 8;
} System.out.println(test);
System.out.println(test); System.out.println(num);
>변수 test를 예시로 스코프의 이해를 돕는 예시문입니다
>이 예시로 밖에서 선언한 변수test를 for문 안으로 넣어도 실행이 가능하다는걸 알 수 있습니다
>하지만 for문의 스코프 밖에 test변수를 선언하지 않고 for문과 if문의 스코프에만 변수test를 선언한 경우
>for문의 밖에서 프린트 메서드를 사용하여 test를 출력하면 오류가 발생하는걸 알 수 있습니다
>이것으로 같은 변수를 중복해서 사용하는 방법을 알 수 있겠습니다
- Scanner_ nextInt_예시문
Scanner sc = new Scanner(System.in);
System.out.print("숫자입력>");
int num = sc.nextInt();
System.out.println(num);
> 문제) 숫자를 계속 입력받다가 0이 입력되면 '끝'출력
// Scanner sc = new Scanner(System.in);
// System.out.print("숫자입력>");
// int num = sc.nextInt();
// while(true) {
// if(num == 0 ) {
// break;
// }
// System.out.print("숫자입력>");
// num = sc.nextInt();
// }
// System.out.println("0입니다");
// Scanner sc = new Scanner(System.in);
// int num = 1;
// while(num != 0) {
// System.out.print("숫자 입력>");
// num = sc.nextInt();
// }System.out.println("0입니다");
- 응용 자판기 만들기
>자판기 만들기 Scanner sc = new Scanner(System.in); long money = 10000; boolean num = true; while (num) { System.out.println("====자판기====\t 현재잔액 : "+money+"원"); System.out.println("1.콜라(1000원) 2.사이다(1200원) 3.우유(1500원) 0.종료"); System.out.print("메뉴선택>"); int sum = sc.nextInt(); if(sum == 1 && money >= 1000) { money = money - 1000; System.out.println("콜라 구입성공!"); }else if(sum == 2 && money >= 1200) { money -= 1200; System.out.println("사이다 구입성공!"); }else if(sum == 3 && money >= 1500) { money -= 1500; System.out.println("우유 구입성공!"); }else if(sum == 0) { num = false; System.out.println("종료"); }else if(money > 0) { System.out.println("잔액이 부족합니다"); break; } else { System.out.println("없는 메뉴입니다"); break; } } > 길지만 원리를 이해한다면 쉽게 읽을 수 있습니다 > 먼저 money에 10000을 대입하고 변수 num에 참을 대입 > while에 num을 대입하여 계속 반복하게 만듭니다 > 이렇게 반복하게 만들경우 반복문인 while의 스코프를 빠져나가기 전까지 while문 안을 반복합니다 > 이후 사용자가 입력한 숫자를 변수 sum에 가져옵니다 > 이렇게 가져온 sum을 if문에 넣어 조건을 만들어주고 > 조건이 충족되면 메뉴의 가격 만큼 money에서 빠지게 만들어줍니다 > "잔액이 부족합니다"를 출력하는 else if에 money 가 0보다 크다면을 넣은 이유는 > money가 1000원 미만일 경우 살 수 있는 메뉴가 없기 때문입니다 이후 break;를 이용해 > 반복문을 빠져나가게 됩니다 > money가 있지만 조건에 맞지 않는 수를 입력할경우 else를 이용하여 "없는 메뉴입니다"를 출력 > 마찬가지로 break;를 이용하여 반복문을 빠져나가게 만들었습니다 break;를 지우면 다시 반복문을 반복합니다
- 로그인 창 만들어보기
public class Ex01_login {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String id = "test";
String pw = "test";
boolean run = true;
while(run) {
System.out.println("=====로그인=====");
System.out.print("id:입력");
String loginId = sc.next();
System.out.print("pw:입력");
String loginPw = sc.next();
if(loginId.equals(id) && loginPw.equals(pw)) {
System.out.println("로그인 성공");
run = false;
}else {
System.out.println("로그인 실패");
System.out.println("다시시도(Y/N)");
String Y = sc.next();
if(Y.equals("N")||Y.equals("n")) {
System.out.println("로그인 종료");
break;
}else if(Y.equals("Y")||Y.equals("y")){
continue;
}
}
}
> 반복문 while에 if문을 넣어 조건을 반복하는 예시입니다
> 아이디와 패스워드를 반복문 밖의 String 변수에 대입하고
> 각각 id와 pw로 선언하였습니다
> 이후 while안에 반복할 메서드를 입력
> if문을 이용하여 반복문을 빠져나갈 조건을 설정합니다
> if(loginId.equals(id) && loginPw.equals(pw)) 여기서 equals은
> 변수 String이 다른 변수와 같다면을 뜻합니다
> &&으로 연결했기에 변수 id와 pw가 사용자가 입력한 값과 같다면 "로그인 성공"이 출력됩니다
> 이후 true;를 넣은 boolean 변수 run을 false;로 바꾸어 반복문이 실행되지 않게 했습니다
> if(loginId.equals(id) && loginPw.equals(pw)) 의 조건에 맞지 않는다면
> else로 내려와 "로그인 실패를" 프린트하게 했습니다
> 이후 if문에 조건 if(Y.equals("N")||Y.equals("n"))을 설정하여
> N,n을 누르면 "로그인 종료" 후 break;로 반복문을 빠져나오게 만들었습니다
> else if에는 Y,y를 입력하면 continue;를 실행하여
> 반복문을 다시 반복하게 만들었습니다
- 3일동안 배운 변수와 문법을 사용하여 만들어보기
!!키오스크를 만들어봤습니다 크게 3가지로 분류하고 각각 3개씩 메뉴를 넣어봤습니다
!!먼저 돈을 넣어야하는 구조로 선택한 메뉴의 가격에 따라 갯수만큼 누적금액은 얼마인지
!!돈이 부족하면 얼마가 부족한지 남는다면 얼마가 남는지 출력합니다
!!메뉴 1~3이 아닌 다른 메뉴를 입력하면 없는 메뉴라는 문구가 출력됩니다
!!이후 메뉴 주문을 누르게되면 거스름돈은 얼마가 나오는지 출력하였습니다
!!모두 가져오면 너무 길기 때문에 대분류 3가지중 1가지만 올려두겠습니다
package day3;
import java.util.Scanner;
public class 만들어보기_수정용 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int a = 4500;
int b = 3000;
int c = 7500;
long hab = 0;
boolean r = true;
while (r) {
System.out.println("====키오스크====");
System.out.print("얼마를 투입하시겠습니까?>");
int money = sc.nextInt();
System.out.println("투입금액은 " + money + "원입니다");
System.out.print("\n");
while (r) {
System.out.println("1.한식 2.중식 3.일식");
System.out.print("음식 종류를 선택해주세요");
int me = sc.nextInt();
System.out.print("\n");
if (me == 1) {
System.out.println("1번.라면(4500원) 2번. 김밥(3000원) 3번.제육(7500원)");
System.out.print("메뉴를 선택해주세요");
int me1 = sc.nextInt();
System.out.print("\n");
if (me1 == 1) {
System.out.println("라면을 선택하셨습니다 현재 누적 금액은" + (hab + a) + "입니다");
hab = hab + a;
System.out.println("예상 반환 금액은" + (money - hab) + "입니다");
System.out.print("\n");
System.out.print("추가 구매를 원하시면 1 결제를 원하시면 2");
int a1 = sc.nextInt();
System.out.print("\n");
if (a1 == 1) {
continue;
} else if (a1 == 2) {
r = false;
}
} else if (me1 == 2) {
System.out.println("김밥을 선택하셨습니다 현재 누적 금액은" + (hab + b) + "입니다");
hab = hab + b;
System.out.println("예상 반환 금액은" + (money - hab) + "입니다");
System.out.print("\n");
System.out.println("추가 구매를 원하시면 1 결제를 원하시면 2");
int a2 = sc.nextInt();
if (a2 == 1) {
continue;
} else if (a2 == 2) {
r = false;
}
} else if (me1 == 3) {
System.out.println("제육을 선택하셨습니다 현재 누적 음액은" + (hab + c) + "입니다");
hab = hab + c;
System.out.println("예상 반환 금액은" + (money - hab) + "입니다");
System.out.print("\n");
System.out.println("추가 구매를 원하시면 1 결제를 원하시면 2");
int a3 = sc.nextInt();
if (a3 == 1) {
continue;
} else if (a3 == 2) {
r = false;
}
} else if (!(me1 ==1 || me1 == 2|| me1 ==3)) {
System.out.println("없는 메뉴입니다");
}
}
}
}
}
'나의 수업일지' 카테고리의 다른 글
인천 일보 아카데미 (주말 숙제) (0) | 2023.02.27 |
---|---|
인천 일보 아카데미 4일차 up&down게임_만들기 / 숫자 랜덤 출력 (0) | 2023.02.24 |
인천일보 아카데미 2일차 조건문 switch / 반복문 for / 반복문 while (1) | 2023.02.22 |
인천일보 아카데미 1일차 (오후) 조건문 if 와 Scanner (1) | 2023.02.21 |
인천일보 아카데미 수업 1일차 (오전) 변수 타입 _ 강제 형변환 (0) | 2023.02.21 |