1. 조건문 if
여러 조건이나 범위일 때 사용
1) 조건이 한 가지 일 경우
int hour = 10; // 오전 10시
if (hour < 14) // 참 조건 -> 이후 명령 수행
System.out.println("아이스 아메리카노 +1");
System.out.println("샷추가"); // 중괄호 {}가 없어서 명령이 조건절에 종속되지 않음
System.out.println("커피 주문 완료 #1");
// 2개 이상의 문장을 실행할 때
int hour2 = 15; // 15시
if (hour2 < 14) { // 거짓 조건 > 중괄호 명령 수행
System.out.println("아이스 아메리카노 +1");
System.out.println("샷추가");
}
System.out.println("커피 주문 완료 #2");
2) 조건이 두 가지 일 경우
// 오후 2시 이전, 모닝 커피를 마시지 않은 경우?
hour = 10;
boolean morningCoffee = false; // 모닝 커피 마신 유무
if (hour < 14 && morningCoffee == false) { // 비교 연산 등호 (참 & 참)
System.out.println("아이스 아메리카노 +1"); // 출력
}
System.out.println("커피 주문 완료 #3");
// 다른 방식
hour = 15;
boolean morningCoffee2 = false; // 모닝 커피 마신 유무
if (hour < 14 && !morningCoffee2) { // 논리 부정 연산 (거짓 & 거짓)
System.out.println("아이스 아메리카노 +1"); // 출력 안함
}
System.out.println("커피 주문 완료 #4");
// 오후 2시 이후이거나 모닝 커피를 안마신 경우?
hour = 15;
morningCoffee = true;
if (hour >= 14 || morningCoffee == true) { // 시간 참 or 모닝커피 참
System.out.println("아이스 아메리카노 (디카페인) +1"); // 둘 중 하나라도 참이면 출력(시간 바뀌어도 출력될 것)
}
System.out.println("커피 주문 완료 #5");
2. 조건문 If Else
int hour = 10;
if (hour < 14) { // 오후 2시 이전이면
System.out.println("아이스 아메리카노 +1");
} else { // 조건 이외의 경우이면?
System.out.println("아이스 아메리카노 (디카페인) +1"); // 해당 출력
}
System.out.println("커피 주문 완료 #1"); // 10시이므로 첫 문장 출력
// 오후 2시 이후이거나 모닝 커피를 마신 경우?
hour = 15;
boolean morningCoffee = true;
if (hour >= 14 || morningCoffee == true) { // 조건 2개, 참 or 참
System.out.println("아이스 아메리카노 (디카페인) +1"); // 둘 다 참이므로 해당 문장 출력
} else {
System.out.println("아이스 아메리카노 +1"); // 둘 다 거짓일 경우만 해당 문장 출력
}
System.out.println("커피 주문 완료 #2"); // 첫 문장과 함께 출력
3. Else If
// 한라봉 에이드가 있으면 +1
// 또는 망고 주스가 있으면 +1
// 또는 아이스 아메리카노 +1 = 앞 두 조건이 모두 만족하지 않으면 최종적으로 마지막 주문
boolean hallabongAde = true; // 한라봉 에이드
boolean mangoJuice = true; // 망고 주스
if (hallabongAde) {
System.out.println("한라봉 에이드 +1"); // 한라봉 에이드 있어서 해당 문장 출력
} else if (mangoJuice) {
System.out.println("망고 주스 +1");
} else {
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #1");
// else if는 여러번 사용 가능
hallabongAde = false; // 한라봉 에이드
mangoJuice = false; // 망고 주스
boolean orangeJuice = true; // 오렌지 주스
if (hallabongAde) {
System.out.println("한라봉 에이드 +1"); // 한라봉 에이드 없음
} else if (mangoJuice) {
System.out.println("망고 주스 +1"); // 망고 주스 없음
} else if (orangeJuice) {
System.out.println("오렌지 주스 +1"); // 오렌지 주스 있어서 해당 문장 출력
} else {
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #2");
// else는 없어도 됨
hallabongAde = false; // 한라봉 에이드
mangoJuice = false; // 망고 주스
orangeJuice = false; // 오렌지 주스
if (hallabongAde) {
System.out.println("한라봉 에이드 +1"); // 한라봉 에이드 없음
} else if (mangoJuice) {
System.out.println("망고 주스 +1"); // 망고 주스 없음
} else if (orangeJuice) {
System.out.println("오렌지 주스 +1"); // 오렌지 주스 없음
}
System.out.println("커피 주문 완료 #3"); // 다 거짓으로 해당 문장만 출력
4. 스위치 케이스
확실한 값이 있는 경우에는 스위치 케이스문을 사용함
1) if문과 비교
// 석차에 따른 장학금 지급
// 1등 : 전액 장학금
// 2등 : 반액 장학금
// 3등 : 반액 장학금
// 그 외 : 장학금 대상 아님
// if else 문을 이용
int ranking = 1; // 등수
if (ranking == 1) {
System.out.println("전액 장학금");
} else if (ranking == 2) { // (ranking == 2 || ranking == 3)으로 합쳐도 가능
System.out.println("반액 장학금");
} else if (ranking == 3) {
System.out.println("반액 장학금");
} else {
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #1");
// Switch Case 문을 이용
ranking = 1;
switch (ranking) {
case 1:
System.out.println("전액 장학금");
break;
case 2: // case 2와 3을 합치려면? 아래 두 행 삭제
System.out.println("반액 장학금"); // case 2와 3을 합치려면 삭제
break; // case 2와 3을 합치려면 삭제
case 3:
System.out.println("반액 장학금");
break;
default:
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #2");
2) 실행의 중첩
// 중고상품의 등급에 따른 가격을 책정 (1급 : 최상, 4급 : 최하)
int grade = 1; // 등급
int price = 7000; // 기본 가격
switch (grade) {
case 1:
price += 1000; // price = price + 1000
case 2:
price += 1000;
case 3:
price += 1000;
break;
}
System.out.println(grade + "등급 제품의 가격 : " + price + "원")
5. 반복문 For
// 반복문 사용
for (int i = 0; i < 10; i++) { //(선언; 조건; 증감)
System.out.println("어서오세요. 호구입니다." + i); // 수행 명령, i가 10보다 작을 때 까지 수행
}
// 짝수만 출력 (fori만 적고 엔터)
// 0 ,2, 4, 6, 8만 출력
for (int i = 0; i < 10; i += 2) {
System.out.print(i); // ln은 줄바꿈, 없으면 한 행으로 나옴
}
System.out.println();
// 홀수만 출력
// 1, 3, 5, 7, 9
for (int i = 1; i < 10; i += 2) {
System.out.print(i);
}
System.out.println();
// 거꾸로 출력
// 5, 4, 3, 2, 1
for (int i = 5; i > 0; i--) {
System.out.print(i);
}
System.out.println();
// 1부터 10 까지 수들의 합
// 1 + 2 + 3 + ... + 10 = 55
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
System.out.println("현재까지 총 합은 " + sum + "입니다.");
}
System.out.println("1부터 10까지의 모든 수의 총합은 " + sum + "입니다.");
※ 마지막 for문 예제는 모든 단계의 덧셈 결과가 다 출력됨
6. 반복문 While
// 수영장에서 수영을 하는 모습
int distance = 25; // 전체 거리 25m
int move = 0; // 현재 이동거리 0m
while (move < distance) { // 현재 이동거리가 전체 거리보다 작다는 조건이 참인 동안 반복 수행
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동거리 : " + move);
move += 3; // 3미터씩 이동(0, 3, 6, 9, 12 ... )
}
System.out.println("도착하였습니다.");
// 무한 루프
move = 0
while (move < distance) { // 현재 이동거리가 전체 거리보다 작다는 조건이 참인 동안 반복 수행
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동거리 : " + move);
} // 반복 탈출 조건이 없으므로 무한대로 같은 상태 유지
System.out.println("도착하였습니다.");
7. 반복문 Do While
move = 0;
height = 25; // 키가 25m
while (move + height < distance) {
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동거리 : " + move);
move += 3; // 3m 이동
}
System.out.println("도착했습니다."); // 키와 거리가 같으므로 바로 도착
// Do While 반복문
do { // 최소 한번은 수행할 명령
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동거리 : " + move);
move += 3;
} while (move + height < distance);
System.out.println("도착했습니다.");
8. 이중 반복문
// 별 (*) 사각형 만들기
/*
*****
*****
*****
*****
*****
*/
for (int i = 0; i < 5; i++) { // i가 0부터 5보다 작을 때 까지 +1
for (int j = 0; j < 5; j++) { // j가 0부터 5보다 작을 때 까지 +1
System.out.print("*");
}
System.out.println();
}
System.out.println("----------구분선----------");
// 별 왼쪽 삼각형 만들기
/*
*
**
***
****
*****
*/
for (int i = 0; i < 5; i++) {
// for (int j = 0; j <= 1; j++) {
for (int j = 0; j < i + 1; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("----------구분선----------");
// 오른쪽 별삼각형 만들기
/*
*
**
***
****
*****
*/
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 4 - i; j++) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print("*");
}
System.out.println();
}
9. 구구단
for (int i = 2; i < 10; i++) {
for (int j = 1; j < 10; j++) {
System.out.println(i + " * " + j + " = " + (i * j));
}
System.out.println();
}
10. Break
// 치킨집 매일 20마리만 튀김 (1인당 1마리만 구매 가능)
// 손님 50명 대기
// for문
int max = 20;
for (int i = 1; i <= 50; i++) {
System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");
if (i == max) {
System.out.println("금일 재료가 소진되었습니다.");
break; // 반복문 탈출
}
}
System.out.println("영업을 종료합니다.");
System.out.println("--------------------");
// While 문
int index = 1; // 손님 대기 번호
while (index <= 50) {
System.out.println(index + "번 손님, 주문하신 치킨 나왔습니다.");
if (index == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
index++;
}
System.out.println("영업을 종료합니다.");
11. Continue
// 치킨 노쇼 손님 있을
// For
int max = 20;
int sold = 0;
int noShow = 17;
for (int i = 1; i <= 50; i++) {
System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");
// noShow라면?
if (i == noShow) {
System.out.println(i + "번 손님, 노쇼로 인해 다음 손님에게 기회가 넘어갑니다.");
continue; // 바로 다음 동작으로 새롭게 시작하여 sold 카운트를 하지 않음
}
sold++; // 판매 처리
if (sold == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
}
System.out.println("금일 영업 종료합니다.");
// While 문
sold = 0;
int index = 0; // 손님 번호
while (index <50) { // whild (true) 도 뒤에 이미 조건이 붙어있어서 가능
index++;
System.out.println(index + "번 손님, 주문하신 치킨 나왔습니다.");
// noShow
if (index == noShow) {
System.out.println(index + "번 손님, 노쇼로 인해 다음 손님에게 기회가 넘어갑니다.");
continue;
}
sold++;
if (sold == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
}
System.out.println("금일 영업 종료합니다.");
'Development' 카테고리의 다른 글
(Java) Chapter6. Method (0) | 2023.01.08 |
---|---|
(Java) Chapter5. Array (0) | 2023.01.06 |
(Java) Chapter3. 문자열 (0) | 2023.01.04 |
(Java) Chapter 1 환경설정 및 자료형 (0) | 2023.01.03 |