Java기반 Back-End 개발자 & 정보처리산업기사 과정 강의 4일차 정리

misung·2021년 3월 19일
0
post-thumbnail

입출력

Scanner

Scanner 복습 시작

예시 1. [3일차] 에서 진행했던 카페 메뉴 3개를 고르는 예제에서,
이번엔 소지금을 입력받고 메뉴를 골라 구매가 가능하면
"결제가 완료되었습니다"라는 메세지 출력과 함께
메뉴를 구매한 후의 잔액을 보여주도록 해 보자.

Scanner sc = new Scanner(System.in);
int choice;
int money = 0;
int price = 0;
		
System.out.print("현재 갖고 있는 돈>");
money = sc.nextInt();
		
System.out.println("현재 " + money + "원이 있습니다.");
		
System.out.println("====================");
System.out.println("[1]딸기스무디 [2]아이스티 [3]바닐라라떼");
System.out.println("====================");
		
System.out.print("메뉴 선택 : ");
choice = sc.nextInt();
		
if (choice == 1) {
	System.out.println("딸기스무디를 선택했습니다.");
	price = 5000;
} else if (choice == 2) {
	System.out.println("아이스티를 선택했습니다.");
	price = 4000;
} else if (choice == 3) {
	System.out.println("바닐라라떼를 선택했습니다.");
	price = 3000;
} else {
	System.out.println("없는 메뉴입니다.");
}
		
System.out.println("선택하신 메뉴의 가격은 " + price + "원 입니다.");
		
if (money >= price) {
	money -= price;
	System.out.println("결제되었습니다.");
} else {
	System.out.println("잔액 부족으로 결제에 실패했습니다.");
}
		
System.out.println("현재 잔액은 " + money + "원 입니다.");


현재 갖고 있는 돈>10000
현재 10000원이 있습니다.
====================
[1]딸기스무디 [2]아이스티 [3]바닐라라떼
====================
메뉴 선택 : 1
딸기스무디를 선택했습니다.
선택하신 메뉴의 가격은 5000원 입니다.
결제되었습니다.
현재 잔액은 5000원 입니다.



조건문

if

중첩 if문

if (조건1) {
	if (조건2) {
		실행문;
	}
}

예시 1.

int num = 3;

if (num < 10) {
	System.out.println("10보다 작습니다.");

    if (num < 5) {
		System.out.println("5보다 작습니다.");
	} else {
		System.out.println("5보다 큽니다.");
	}

} else {
	System.out.println("10보다 큽니다.");
}


10보다 작습니다.
5보다 작습니다.

예시 2. 점수를 입력받아 90점 이상인 경우 A, 95점 이상의 경우 A+,
80점 이상의 경우 B, 85점 이상의 경우 B+, 80점 미만의 경우 C를 출력해보자.

Scanner sc = new Scanner(System.in); // Scanner 선언 
int score = 0;						// 점수 입력받을 변수 
String grade = "";					// 학점 저장할 문자열
		
System.out.print("점수 입력 : ");
score = sc.nextInt();				// 점수 입력받기
		
if (score >= 90) {					// 90점 이상일 때, 
	grade = "A";
	if (score >= 95) {				// 95점 이상일 때,
		grade = "A+";
	}
} else if (score >= 80) {			// 80점 이상 90점 미만일 때,
	grade = "B";
	if (score >= 85) {				// 85점 이상일 때, 
		grade = "B+";
	}
} else {							// 80점 미만일 때
	grade = "C";
}
		
System.out.println(grade + "학점입니다.");


점수 입력 : 95
A+학점입니다.

Switch/Case문

switch (조건변수) {
case 변수값1:
    	조건변수가 변수값 1일때 실행;
        break;
case 변수값2:
    	조건변수가 변수값 2일때 실행;
        break;
default :
	해당하는 값이 없을 때 실행;
}

Switch/Case문 실습해보기

예제 1. 어제 작성했던 카페 메뉴를 고르는 프로그램에서,
if문을 switch문으로 교체하고, 분기마다 메뉴 이름을 출력하지 말고,
분기를 나온 다음 한 문장 안에 모두 출력하도록 해 보자.

Scanner sc = new Scanner(System.in);

System.out.println("====================");
System.out.println("[1]딸기스무디 [2]아이스티 [3]바닐라라떼");
System.out.println("====================");
		
System.out.print("메뉴 선택>");
int menuSel = sc.nextInt();
		
int menuPrice = 0;
String menuStr = " ";
		
switch (menuSel) {
case 1:
	menuStr = "딸기스무디";
	menuPrice = 5000;
	break;
case 2:
	menuStr = "아이스티";
	menuPrice = 4000;
	break;
case 3:
	menuStr = "바닐라라떼";
	menuPrice = 3000;
	break;
default:
	System.out.println("없는 메뉴입니다.");
}

if (menuStr != " ") {
	System.out.println("선택하신 메뉴는 [" + menuStr + "], 가격은 " + menuPrice + "원 입니다.");
}


====================
[1]딸기스무디 [2]아이스티 [3]바닐라라떼
====================
메뉴 선택>3
선택하신 메뉴는 [바닐라라떼], 가격은 3000원 입니다.



함수

Random

자료형 변수명 = (자료형) (Math.random() * 랜덤 범위) + 시작 범위

Math.random()은, 1까지의 범위로 설정했다고 했을 때,
0.0 ~ 0.9999999 double타입의 실수로 생성된다.
밑 예제의 경우 int로 명시적 형 변환을 행했기 때문에 정수형으로 출력된다.

int num = (int)(Math.ramdom() * 6) + 1; // 1부터 ~ 6까지
System.out.println("num = " + num);


3
6
1
3



반복문

for문

for ( 초기화식; 조건식; 증감식 ) { 반복 수행될 내용; }

// 반복문
for (int i = 0; i < 5; i++) {
	System.out.println(i);
}
System.out.println("for문 종료");


0
1
2
3
4
for문 종료

for문 연습하기

예시 1. 1부터 10까지의 합을 구하되, 5를 제외한 나머지의 합을 구해보자.

int sum = 0;

for (int i = 1; i <= 10; i++) {
			
	if (i == 5) continue;
			
	sum += i;
}
		
System.out.println("1부터 10까지의 합(5 제외) : " + sum);

→ 1부터 10까지의 합(5 제외) : 50

예시 2.

// 1부터 입력받은 숫자까지의 합.
Scanner sc = new Scanner(System.in);
		
System.out.print("숫자 입력 : ");
int input = sc.nextInt();
int sum = 0;
		
for (int i = 1; i <= input; i++) {
	sum += i;
}
		
System.out.println("1부터 " + input + "까지의 합 : " + sum);


숫자 입력 : 100
1부터 100까지의 합 : 5050

0개의 댓글

관련 채용 정보