‘나도코딩 JAVA 강의 수강’
23.04.24
chap.04 제어문
조건문 If
package chap_04;
public class _01_If {
public static void main(String[] args) {
//조건문 IF
int hour = 15; //오전 10시
//if 문 내에서 하나의 문장을 실행 할 때는 {} 생략가능
if (hour < 14)
System.out.println("아이스 아메리카노 +1");
//if 문 내에서 2개 이상의 문장을 실행할 때는 {} 필요
if (hour < 14) {
System.out.println("아이스 아메리카노 +1");
System.out.println("샷추가");
}
System.out.println("커피 주문 완료 #1");
//오후 2시 이전이면서, 모닝커피를 마시지 않은 경우?
hour = 10;
boolean morningCoffee = false; //모닝커피
//if (hour < 14 && morningCoffee == false);{
if (hour < 14 && !morningCoffee) ;
{
System.out.println("아이스 아메리카노 + 1");
}
System.out.println("커피 주문 완료 #2");
//오후 2시 이후이거나, 모닝커피를 마신 경우
hour = 10;
morningCoffee = true;
// if(hour >= 14 || morningCoffee == true) { //둘중에 하나라도 만족한다면 or연산자
if (hour >= 14 || morningCoffee) {
System.out.println("아이스 아메리카노 (디카페인) +1");
}
System.out.println("커피 주문 완료 #3");
}
}
조건문 If Else
package chap_04;
public class _02_Else {
public static void main(String[] args) {
// 조건문 : If Else 문
int hour = 15;
if (hour < 14) { // 오후 2시 이전이면 커피 주문
System.out.println("아이스 아메리카노 +1");
} else { // 그외의 경우이면 디카페인 주문
System.out.println("아이스 아메리카노 (디카페인) +1");
}
System.out.println("커피 주문 완료 #1");
//오후2시 이후이거나, 모닝커피를 마신경우?
hour = 10;
boolean morningCoffee = false;
if (hour >= 14 || morningCoffee == true) { //오후2시이후면서 모닝커피를 마신경우
System.out.println("아이스 아메리카노 (디카페인) +1");
} else { //2시 이전이고, 모닝커피를 마시지않았으면 기본 아아 주문
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #2");
}
}
조건문 Else If
public class _03_ElseIf {
public static void main(String[] args) {
// 조건문 ElseIf
// 한라봉 에이드가 있으면 +1
// 또는 망고 주스가 있으면 +1
// 또는 아이스아메리카노 +1
boolean hallabongAde = true; //한라봉에이드
boolean mangoJuice = false; // 망고주스
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 orangeAde = true;
if (hallabongAde) {
System.out.println("한라봉에이드 +1");
}else if (mangoJuice){
System.out.println("망고주스 +1");
}else if (orangeAde){
System.out.println("오렌지주스 +1");
}
else {
System.out.println("아이스 아메리카노 +1");
}
System.out.println("커피 주문 완료 #2");
//else는 없어도 가능
hallabongAde = false;
mangoJuice = false;
orangeAde = false;
if (hallabongAde) {
System.out.println("한라봉에이드 +1");
}else if (mangoJuice){
System.out.println("망고주스 +1");
}else if (orangeAde){
System.out.println("오렌지주스 +1");
}
System.out.println("커피 주문 완료 #3");
}
}
else if 문
boolean 변수 선언 ,
if(변수명) {중괄호sout(조건);} else if (변수명) {sout (조건);} else(변수명){sout(조건);} }
switch 문
switch (expression) {
case A : ... 수행할 명령 ...
break;
case B : ... 수행할 명령 ...
break;
case C :... 수행할 명령 ...
break;
...
defaul
스위치문 예시)
public class _04_SwtchCase {
public static void main(String[] args) {
//Switch Case
// 석차에 따른 장학금 지급
//1등 : 전액장학금
//2등 : 반액장학금
//3등 : 반액장학금
//그 외 : 장학금 대상 아님
** //If Else문 이용**
int ranking = 3; //등수
if(ranking == 1){
System.out.println("전액장학금");
} else if (ranking == 2 || ranking == 3){
System.out.println("반액장학금");
} else{
System.out.println("장학금 대상 아님 ");
}
System.out.println("조회 완료 #1");
** // switch case 이용**
ranking = 2;
switch (ranking) {
case 1 :
System.out.println("전액 장학금");
break;
case 2 :
System.out.println("반액 장학금");
break;
case 3 :
System.out.println("반액 장학금");
break;
default:
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #2");
//case 2와 3을 통합하는 경우 (중복)
ranking = 2;
switch (ranking) {
case 1 :
System.out.println("전액 장학금");
break;
case 2 :
case 3 :
System.out.println("반액 장학금");
break;
default:
System.out.println("장학금 대상 아님");
}
System.out.println("조회 완료 #3");
//중고상품의 등급에 따른 가격을 책정(1급: 최상, 4급 : 최하)
int grade = 2; //등급
int price = 7000; //기본 가격
switch (grade){
case 1: //1등급의 경우는 case3+2+1 = 10000원
price += 1000; //price+1000
case 2:
price += 1000;
case 3:
price += 1000;
break;
}
System.out.println(grade+ "등급 제품의 가격:" + price + "원");
// 1등급 제품의 가격: 1000원
}
}
If Else문 이용 = 여러조건 또는 범위의 해당하는 조건인경우 사용)
switch case 이용 = 명확한 케이스가 있는 경우에 사용)
For 반복문
public class _05_For {
public static void main(String[] args) {
//반복문 For
//나코매장
System.out.println("어서오세요. 나코입니다.");
//또 다른 손님이 들어온다면?
System.out.println("어서오세요. 나코입니다.");
System.out.println("어서오세요. 나코입니다.");
System.out.println("어서오세요. 나코입니다.");
System.out.println("어서오세요. 나코입니다.");
System.out.println("어서오세요. 나코입니다.");
System.out.println("어서오세요. 나코입니다.");
//만약에 인사법이 바뀐다면?
System.out.println("환영합니다. 나코입니다.");
System.out.println("환영합니다. 나코입니다.");
System.out.println("환영합니다. 나코입니다.");
//매장이름이 바뀐다면? 나코->코나
System.out.println("환영합니다. 코나입니다.");
System.out.println("환영합니다. 코나입니다.");
System.out.println("환영합니다. 코나입니다. ");
System.out.println("------반복문 사용 -------");
//이런 경우 for 반목문 사용
**for (int i = 0; i < 10; i++) {
// System.out.println("어서오세요. 나코입니다." + i);
// System.out.println("환영합니다. 나코입니다." + i);
System.out.println("환영합니다. 코나입니다." + i);**
}
}
for 반복문 응용
//짝수만 출력 (fori만 적고 엔터)
for (int i = 0; i < 10; i += 2) {
System.out.print(i);
}
System.out.println(); //아무것도 안적고 줄바꿈하고싶을 때
//홀수만 출력
for (int i = 1; i < 10; i += 2) {
System.out.print(i);
}
System.out.println();
//거꾸로 출력하기
for (int i = 5; i > 0; i--) {
System.out.print(i);
}
System.out.println();
//1부터 10까지의 수들의 합
// 1+2+ ... + 10 =55
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i; // 1씩 증감
System.out.println("현재까지 총합은 " + sum + "입니다.");
}
System.out.println("1부터 10까지의 모든 수의 총합은 " + sum + "입니다." );
}
}
//실행결과
현재까지 총합은 1입니다.
현재까지 총합은 3입니다.
현재까지 총합은 6입니다.
현재까지 총합은 10입니다.
현재까지 총합은 15입니다.
현재까지 총합은 21입니다.
현재까지 총합은 28입니다.
현재까지 총합은 36입니다.
현재까지 총합은 45입니다.
현재까지 총합은 55입니다.
1부터 10까지의 모든 수의 총합은 55입니다.
5. While 반복문(루프, 무한반복문)
public class _06_While {
public static void main(String[] args) {
// 반복문 While
// 수영장에서 수영을 하는 모습
int distance = 25; //전체거리 25m
int move = 0; //현재 이동거리
while (move < distance ) { //현재이동거리가 전체거리보다 작다는 조건이 참인 동안 반복 수행
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동거리는 " + move);
move +=3; //3미터 이동
}
System.out.println("도착하였습니다.");
//무한 루프(무한 반복문)
move = 0;
while (move < distance ) { //현재이동거리가 전체거리보다 작다는 조건이 참인 동안 반복 수행
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동거리는 " + move);}
System.out.println("도착하였습니다.");
}
Do While 반복문
public class _07_DoWhile {
public static void main(String[] args) {
//반복문 DoWhile
int distance = 25; //수영장전체거리
int move = 0; //현재이동거리
int height = 2; //키 2미터
while (move + height < distance) {
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동 거리: " + move);
move += 3; //3m이동
}
System.out.println("도착했습니다.");
System.out.println("----반복문 #1---");
//키가 엄청 큰 사람이 수영한다면?
move = 0;
height = 25;
while (move + height < distance){
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동 거리: " + move);
move += 3; //3m이동System.out.println();
}
System.out.println("도착했습니다.");
System.out.println("----반복문 #2---");
//Do While?
do{
System.out.println("발차기를 계속합니다.");
System.out.println("현재 이동 거리: " + move);
move += 3;
} while (move+ height < distance);
System.out.println("도착했습니다.");
}
}
이중반복문
public class _08_NestedLoop {
public static void main(String[] args) {
//이중 반복문
//예제1) 별 (*)로 사각형 만들기
/*
*****
*****
*****
*****
*****
*/ //이중반복문
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
실행결과 }
*****
*****
*****
*****
*****
System.out.println("--------------------");
//별 왼쪽삼각형 만들기
/*
*
**
***
****
*****
1씩 횟수 늘어나는 삼각형 만들기 */
for (int i = 0; i < 5; i++) {
for (int j = 0; j < i + 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
*
**
***
****
*****
실행결과
//별 오른쪽 삼각형 만들기
for문 안에 for문 그 안에 for문 총 3중 반복문
/*
ssss*
sss**
ss***
s****
***** */
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();
}
}
}
*
**
***
****
***** //실행결과
- 구구단 만들기 (이중반복문이용)
package chap_04;
public class _09_MultipleTabel {
public static void main(String[] args) {
// 구구단 만들기 (이중반복문)
for (int i = 2; i < 10; i++) { //구구단 2단~9단까지니까 i < 10
for (int j = 1; j < 10; j++){
System.out.println(i + " x " + j + " = " + (i * j));
}
System.out.println(); //공백
}
}
}
- break문
public class _10_Break {
public static void main(String[] args) {
//break
//치킨 집에서 매일 20마리만 판매(1인당 1마리만 구매 가능)
// 손님이 50명 대기
**1번방법
//For 문 사용
int max = 20;
for (int i = 1; i <= 50; i++) { //손님은 1명부터~50명까지
System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");
if (i == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break; //반복문을 탈출
}
}
System.out.println("영업을 종료합니다.");
System.out.println("---------------------");
**1번방법
//while문
int index = 1; //손님대기번호
while (index <= 50){
System.out.println(index + "번 손님, 주문하신 치킨 나왔습니다.");
if (index == max){
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
index ++;
}
System.out.println("영업을 종료합니다.");
}
}
- continue
package chap_04;
public class _11_Continue {
public static void main(String[] args) {
//Continue
//치킨 주문 손님중에 노쇼손님이 있다고 가정
//For
int max = 20; //최대 치킨 판매 수량
int sold = 0; // 현재 치킨 판매 수량
int noShow = 17; //대기번호 17번 손님이 노쇼
for (int i = 1 ; i <= 50; i++) {
System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");
// 손님이 없다면? (noShow)
if (i == noShow){
System.out.println(i + "번 손님, 노쇼로 인해 다음 손님에게 기회가 넘어갑니다.");
continue; //17번 건너띄고 한명더 추가 총 21번 손님까지 감, continue는 즉시 동작을 멈추고 다음동작으로 넘어감
}
sold++; //판매처리
if (sold == max){
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
}
System.out.println("영업을 종료합니다.");
System.out.println("---------------------");
//while문
sold = 0;
int index = 1;
while (index <= 50){
System.out.println(index + "번 손님, 주문하신 치킨 나왔습니다.");
//만약 손님이 없다면 (noShow)
if (index == noShow){
System.out.println(index + "번 손님, 노쇼로 인해 다음 손님에게 기회가 넘어갑니다.");
index++;
continue;
}
sold++;
if (sold == max){
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
index++;
}
System.out.println("영업을 종료합니다.");
}
if문에서 continue를 사용하게 되면 동작이 실행되다가 continue를 만나면 바로 동작을 중지한 뒤 다음 동작이 실행된다.
- QUIZ
public class _Quiz_04 {
public static void main(String[] args) {
int hour = 10; //주차시간
boolean isSmallCar = false; //경차 여부
boolean withDisabledPerson = false; //장애인 차량 여부
int fee = hour * 4000; //시간당 4000원 곱하기
//30000원 초과시 일일 최대요금을 수정
if (fee > 30000){
fee = 30000; //fee를 일일 최대요금 3만원으로 변경하게끔
}
//경차 또는 장애인 차량인 경우 50%할인
if (isSmallCar || withDisabledPerson) {
fee /= 2; //fee 50%할인
}
//실행결과출력 주차요금은 xx원입니다.
System.out.println("주차 요금은 " + fee + " 원 입니다.");
}
}
'Java' 카테고리의 다른 글
[Java] 메서드 (0) | 2023.07.07 |
---|---|
[Java] 배열 (0) | 2023.07.07 |
[Java] 문자열 (0) | 2023.07.07 |
[Java] 형변환 (0) | 2023.07.07 |
[Java] 참조변수 super (0) | 2023.06.01 |