학원 9일차 - Java

·2021년 4월 9일
0

2021.04.08

제어문

  • 수많은 명령어들을 제어하는 도구
  • 명령어들의 실행순서 or 반복 등을 제어한다.
  • 조건 제어, 반복 제어, 분기 제어
  1. 조건문
    a. if
    b. switch

  2. 반복문

    a. for
    b. while
    c. do while
    d. for

  3. 분기문

    a. break
    b. continue
    c. goto(JDK 1.5 폐지.)

//1.상수
if(true) { }

//2.변수
boolean flag = true;
if(flag) { }

//3. 연산자
int num = 10;
if (num > 0) { }

//4. 메서드 
if(test()) { }

if문

  • 조건을 제시한 후 조건의 결과에 따라서 실행할지 결정 제어
  • 조건식의 결과는 반드시 boolean
if (조건식) {
	실행문;
}


int n = 10; //-n이면 실행이 안된다. 
		
//n이 양수입니까?
if(n > 0) {
	System.out.println("양수입니다.");
}
if (조건식) {
 	실행문;
} else {
	실행문;
 }


n = 10;

if(n > 0) {
	System.out.println("양수입니다.");
} else {
	System.out.println("양수가 아닙니다..");
}
if (조건식) {
	실행문;
} else if (조건식) {
	실행문;
}
if (조건식) {
 	실행문;
} else if (조건식) {
	실행문;
}  else if (조건식) {
	실행문;
}  else if (조건식) {
	실행문;
}


n = 10;
		
if (n > 0) {
	System.out.println("양수입니다.");
} else if (n < 0){
	System.out.println("음수입니다.");
} else if (n == 0) {
	System.out.println("0입니다.");
}
if (조건식) {
	실행문;
} else if (조건식) {
	실행문;
} else {
	실행문;
}


if (n > 0) {
	System.out.println("양수입니다.");
} else if (n < 0){
	System.out.println("음수입니다.");
} else {
	System.out.println("0입니다.");
}
if (조건식) {
		실행문;
} //여러번 쓸 수 없다. 중복 안된다. 
[else if (조건식) {
	실행문;
}] x N  //안써도 되고 쓴다면 여러번 써도 된다. 
[else {
	실행문;
}]

//기상 시각
int hour = 7;

if(hour < 8) {
    System.out.println("지하철 타고 출근합니다.");
} else {
    System.out.println("택시를 타고 출근합니다.");
}



if(hour < 8) {
    System.out.println("지하철 타고 출근합니다.");
} else if (hour < 9){ //8~9시 기상
    System.out.println("택시를 타고 출근합니다.");
} else { //9시 넘어서 기상
    System.out.println("결근한다.");
}

//입력받은 숫자 -> 짝수? 홀수?
int num = 2;

if (num % 2 == 0) {
    System.out.println("짝수");
} else {
    System.out.println("홀수");
}
  • 조건문 작성
    • 19 <= age < 60 한번에 작성 불가
    • 19 <= age && age < 60 => 가독성 안좋음
    • (주체가 앞에 오는 게 좋다. 왼쪽에서부터 읽는다.)age >= 19 && age < 60 => 가독성 굿
//나이 입력 -> 우리가 원하는 나이대?
//19세 이상 ~ 60세 미만
int age = 25;

//유효성검사 (데이터가 올바른지 미리 체크) -> 나이로서 생김새가 갖춰졌는지 미리 체크 (251436살, -542살 X)
//코딩 컨벤션(= 코드 작성하는 규칙) -> 들여쓰기 잘할 것.
//중첩 if문(Nested if statement)


//예외 처리 코드(유효성 검사)
if(age >= 1 && age <= 140) {

    //업무 코드(비지니스 코드)
    if (age >=19 && age < 60) {
        System.out.println("회원 가입 진행..");
    } else {
        System.out.println("가입 불가능..");
    }

} else {
    System.out.println("사람나이가 올바르지 않습니다.");
}

조건식, Condition

  • 조건식 반드시 boolean값을 가진다.(--> 자바)
  • 다른 언어는 조건식의 결과로 boolean이 아닌 값을 가지기도 한다.
    • 정수: 0(false), 그 이외의 숫자(true), 1(true)
    • 실수: 0.0(false), 그 이외의 숫자(true)
    • 문자: \0(문자코드값(0), null문자)(false), 그 이외의 모든 문자(true)
    • 문자열: ""(빈문자열, false), "홍길동"(true)

switch문

  • 조건문
  • 조건으로 사용 가능한 자료형이 제한되어있음 > 정수, 문자열, 열거형(enum)만 가능
  • switch문으로 만든 조건은 if문으로도 만들 수 있다.
  • 가독성이 좋다.
switch (조건) {
    case:
        실행문;
        break;
	[case:
        실행문;
        break;] x N
	[default:
        실행문;
        break;]	
}
//숫자 -> 한국
//1 -> "하나"

int num = 2;

//다중if문
if(num == 1) {
    System.out.println("하나");
} else if (num == 2) {
    System.out.println("둘");
} else if (num == 3) {
    System.out.println("셋");
}


switch (num) {
    case 1: //-> Label
        System.out.println("하나");
        break;
    case 2:
        System.out.println("둘");
        break;
    case 3:
        System.out.println("셋");
        break;	
}

System.out.println("종료");
//자판기
// - 메뉴출력 -> 음료 선택 -> 가격 출력
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

System.out.println("========================");
System.out.println("          자판기 ");
System.out.println("========================");
System.out.println("1. 콜라");
System.out.println("2. 사이다");
System.out.println("3. 포도주스");
System.out.println("========================");
System.out.print("선택(번호입력): ");

String input = reader.readLine();



if(input.equals("1")) {
    System.out.println("700원입니다.");
} else if (input.equals("2")) {
    System.out.println("600원입니다.");
} else if (input.equals("3")) {
    System.out.println("500원입니다.");
} else {
    //메뉴에 없는 것 처리
    System.out.println("선택하신 번호는 없는 번호입니다. ");
}


switch (input) {
    case "1":
        System.out.println("700원입니다.");
        break;
    case "2":
        System.out.println("600원입니다.");
        break;
    case "3":
        System.out.println("500원입니다.");
        break;
    default: //if문의 else절과 같은 역할
        System.out.println("없는 번호를 선택했습니다.");
        break; //마지막의 break는 안써도 되지만 적어주는 것을 권장.
}




//콜라 사이다를 800원으로 수정
if(input.equals("1") || input.equals("2")) {
    System.out.println("800원입니다.");
} else if (input.equals("3")) {
    System.out.println("500원입니다.");
}


switch (input) {
    case "1":
    case "2":
        System.out.println("800원입니다.");
        break;
    case "3":
        System.out.println("500원입니다.");
        break;
}
// 사용자 입력 > 년, 월 -> 해당월의 마지막일?
int year = 2021;
int month = 4;
int lastDay = 0;

switch (month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        lastDay = 31;
        break;
        
    case 4:	
    case 6:	
    case 9:	
    case 11:
        lastDay = 30;
        break;

    case 2:
        lastDay = 28; //윤년 계산? 28,29
        break;
}

System.out.println(lastDay);

//2020년 2월 -> 마지막 날짜?
Calendar c1 = Calendar.getInstance();
c1.set(2020, 1, 1); //2020-02-01

System.out.println(c1.getActualMaximum(Calendar.DATE));
profile
모르면 괴롭고 알면 즐겁다.

0개의 댓글

관련 채용 정보