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

misung·2021년 3월 23일
0

반복문

while문

while문 실습

예시 1. 숫자를 입력받고, 홀수 혹은 짝수인지 판단 후 출력해보자. 그리고 0을 입력받을 경우 종료해보자.

Scanner sc = new Scanner(System.in);
int input = 1;
		
while (input != 0) {
	System.out.print("숫자를 입력 (종료 : 0)>");
	input = sc.nextInt();
			
	System.out.println("입력한 숫자는 " + input + "입니다.");
			
	if (input == 0)
		break;
			
	switch (input % 2) {
	case 0:
		System.out.println("짝수입니다.");
		break;
	case 1:
		System.out.println("홀수입니다.");
		break;
	}
			
	System.out.println();
}
		
System.out.println("종료.");


숫자를 입력 (종료 : 0)>1
입력한 숫자는 1입니다.
홀수입니다.

숫자를 입력 (종료 : 0)>2
입력한 숫자는 2입니다.
짝수입니다.

숫자를 입력 (종료 : 0)>3
입력한 숫자는 3입니다.
홀수입니다.

숫자를 입력 (종료 : 0)>0
입력한 숫자는 0입니다.
종료.

예시 2. Up&Down 게임을 만들어보자. 1~50 사이의 범위 내에서 랜덤으로 답이 정해지고, 숫자를 입력받아서 입력된 수가 답보다 작으면 "답이 더 크다", 답보다 크면 "답이 더 작다" 라고 출력해보자. 그리고 답을 맞췄을 경우 몇 번만에 정답을 만들었는지 알려주도록 해 보자.

Scanner sc = new Scanner(System.in);
		
int answer = (int)(Math.random() * 50 + 1);
int loopTimes = 0;
		
while(true) {
	++loopTimes;
			
	System.out.print("숫자를 입력하세요 : ");
	int input = sc.nextInt();
			
	if (answer > input) {
		System.out.println(input + "보다 큽니다.");
	} else if (answer < input) {
		System.out.println(input + "보다 작습니다.");
	} else if (answer == input) {
		System.out.println("정답입니다.");
		break;
	}
}	

System.out.println(loopTimes + "번의 시도만에 정답을 맞췄습니다.");


숫자를 입력하세요 : 30
30보다 큽니다.
숫자를 입력하세요 : 40
40보다 작습니다.
숫자를 입력하세요 : 35
35보다 큽니다.
숫자를 입력하세요 : 37
37보다 작습니다.
숫자를 입력하세요 : 36
정답입니다.
5번의 시도만에 정답을 맞췄습니다.

예시 3. 이전에 카페 메뉴를 주문받았던 클래스를 while문으로 구현해보자.


메뉴는 각 [1]딸기스무디 [2]바닐라라떼 [3]아메리카노 3가지가 존재하고,
가격은 각 5000, 4000, 3000원이며 메뉴 선택 이후
"주문하시겠습니까? 1.예 2.아니오" 출력 후 1.예 = 가격을 영수증에 추가
2.아니오 = 아무것도 하지 않음 상태로 지난 후,
"추가 주문을 하시겠습니까? 1.예 2.아니오"를 출력하고
1. 예 = while문 반복, 2. 아니오 = while문 탈출 후 최종적으로
여태 주문한 메뉴들의 가격의 총합을 출력해보자.

Scanner sc = new Scanner(System.in);
		
int receipt = 0;
boolean flag = true;
		
while (flag) {
			
	System.out.println("=================================");
	System.out.println("[1]딸기스무디 [2]바닐라라떼 [3]아메리카노");
	System.out.println("=================================");
			
	System.out.print("메뉴 선택 : ");
	int input = sc.nextInt();
	int price = 0;
			
	switch (input) {
	case 1:
		System.out.println("딸기스무디의 가격은 5000원 입니다.");
		price = 5000;
		break;
	case 2:
		System.out.println("바닐라라떼의 가격은 4000원 입니다.");
		price = 4000;
		break;
	case 3:
		System.out.println("아메리카노의 가격은 3000원 입니다.");
		price = 3000;
		break;
	}
			
	System.out.print("주문하시겠습니까? 1.예 2.아니오 : ");
	input = sc.nextInt();
			
	switch(input) {
	case 1:
		receipt += price;
		System.out.println("주문되었습니다.");
		break;
	case 2:
		break;
	}
			
	System.out.println();
			
	System.out.print("추가 주문을 하시겠습니까? 1.예 2.아니오 : ");
	input = sc.nextInt();
			
	switch (input) {
	case 1:
		break;
	case 2:
		flag = false;
		break;
	}
			
	System.out.println();
}
		
System.out.println("총 주문 금액은 " + receipt + "원 입니다.");


=================================
[1]딸기스무디 [2]바닐라라떼 [3]아메리카노
=================================
메뉴 선택 : 1
딸기스무디의 가격은 5000원 입니다.
주문하시겠습니까? 1.예 2.아니오 : 1
주문되었습니다.

추가 주문을 하시겠습니까? 1.예 2.아니오 : 1

=================================
[1]딸기스무디 [2]바닐라라떼 [3]아메리카노
=================================
메뉴 선택 : 2
바닐라라떼의 가격은 4000원 입니다.
주문하시겠습니까? 1.예 2.아니오 : 1
주문되었습니다.

추가 주문을 하시겠습니까? 1.예 2.아니오 : 2

총 주문 금액은 9000원 입니다.

예시 4. 예금, 출금 및 잔고 확인 기능이 있는 프로그램을 만들어보자.

Scanner sc = new Scanner(System.in);
int balance = 0;
boolean flag = true;
		
while (flag) {
	System.out.println("=============================");
	System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
	System.out.println("=============================");
			
	System.out.print("선택 : ");
	int choice = sc.nextInt();
			
	switch (choice) {
	case 1:
		System.out.print("예금액 : ");
		int deposit = sc.nextInt();
				
		balance += deposit;
		break;
	case 2:
		System.out.print("출금액 : ");
		int withdraw = sc.nextInt();
				
		if (balance < withdraw) {
			System.out.println("잔고가 부족합니다.");
			break;
		} else {
			balance -= withdraw;
		}
		break;
	case 3:
		break;
	case 4:
		System.out.println("종료.");
		flag = false;
		continue;
	}
			
	System.out.println("현재 잔액은 " + balance + "입니다.");
}


=============================
1.예금 | 2.출금 | 3.잔고 | 4.종료
=============================
선택 : 1
예금액 : 10000
현재 잔액은 10000입니다.
=============================
1.예금 | 2.출금 | 3.잔고 | 4.종료
=============================
선택 : 2
출금액 : 20000
잔고가 부족합니다.
현재 잔액은 10000입니다.
=============================
1.예금 | 2.출금 | 3.잔고 | 4.종료
=============================
선택 : 2
출금액 : 5000
현재 잔액은 5000입니다.
=============================
1.예금 | 2.출금 | 3.잔고 | 4.종료
=============================
선택 : 3
현재 잔액은 5000입니다.
=============================
1.예금 | 2.출금 | 3.잔고 | 4.종료
=============================
선택 : 4
종료.


do while문

do {실행문;} while (반복조건);

int num1 = 11;

do {
	System.out.println("do while 실행됨");
	// 일단 한번 실행되는 부분
} while (num1 < 10);


do while 실행됨



배열

1차원 배열

int[] 배열 변수명 = new int [배열 크기] ;

int[] arr = new int[5];
		
for (int i = 0; i < arr.length; i++) {
	arr[i] = i + 1;
	System.out.println("arr[" + i + "] : " + arr[i]);
}


arr[0] : 1
arr[1] : 2
arr[2] : 3
arr[3] : 4
arr[4] : 5

1차원 배열 실습

예시 1. 크기 10짜리 int형 배열을 선언하고, 0~9번지에 각 1~10까지 값을 저장한 다음, 배열에 저장된 값과 총합을 출력해보자.

int[] arr = new int[10];
int sum = 0;
		
for (int i = 0; i < arr.length; i++) {
	arr[i] = i + 1;
	sum += arr[i];
			
	System.out.println("arr[" + i + "] : " + arr[i]);
}
		
System.out.println("sum of array : " + sum);


arr[0] : 1
arr[1] : 2
arr[2] : 3
arr[3] : 4
arr[4] : 5
arr[5] : 6
arr[6] : 7
arr[7] : 8
arr[8] : 9
arr[9] : 10
sum of array : 55

예시 2. 배열의 크기를 Scanner 클래스로 입력받아서 학생의 점수를 담을 int형 배열을 선언해보자. 그리고 저장된 점수를 차례로 출력해보자.

Scanner sc = new Scanner(System.in);
		
System.out.print("배열의 크기 입력 : ");
int arrSize = sc.nextInt();
int[] scores = new int[arrSize];
		
for (int i = 0; i < scores.length; i++) {
	System.out.print((i + 1) +"번째 학생의 점수 : ");
	scores[i] = sc.nextInt();
}
		
for (int i = 0; i < scores.length; i++) {
	System.out.println(scores[i]);
}


배열의 크기 입력 : 5
1번째 학생의 점수 : 100
2번째 학생의 점수 : 88
3번째 학생의 점수 : 75
4번째 학생의 점수 : 95
5번째 학생의 점수 : 99
100
88
75
95
99

0개의 댓글

관련 채용 정보