티스토리 뷰

728x90

서문



자바의 정석 기초편 챕터 4편을 기재합니다.
목적은 공부한 내용을 기록하는 것에 있기 때문에 완전한 문장이 아닐 수도 있습니다.









본문


자바의 정석 ( CH.4 )



조건문과 반복문


조건문(if문, if-else, if-else if-else, 다양한 조건들)

  • 조건을 만족할 때 {}안에 있는 식을 수행
int score = 11;
if (score > 10){
  System.out.println("합격입니다.")
  System.out.println("축하드립니다.")
} else {
  System.out.println("불합격입니다.")
  System.out.println("좋지 않은 소식을 보내드려 죄송합니다.")
}

> 합격입니다.
> 축하드립니다.

-----------------------------------------

int score = 91;

if (score > 90){
    System.out.println("A");
} else if (score > 80){
    System.out.println("B");
} else if (score > 70){
    System.out.println("C");
} else {
    System.out.println("D");
}

> A


switch 문

  • 처리해야 하는 경우의 수가 많을 때 유용한 조건문
  • 제약조건
    • switch문의 결과값은 정수 또는 문자열이어야 한다.
    • case문의 값은 정수 상수(문자포함), 문자열만 가능하다. 중복되지 않아야 한다.
switch (조건식){
  case 값1:
    // 조건식의 결과값이 값1일 때 실행되는 곳

    break // break가 없으면 default까지 내려가기 때문에 break를 해야함

  case 값2:

    break

  case 값3:

    break

  default: // 생략가능
    // 조건식의 결과와 일치하는 부분이 없을 때 이 부분이 실행
}

-------------------------------------------

int num, result;
final int ONE = 1;
...
switch(result){
  case '1': // ok, 문자 리터럴(정수 49와 동일)
  case ONE: // ok, 정수 상수
  case "YES": // ok, 문자열 리터럴, JDK 1.7이상부터
  case num: // error, 변수는 불가
  case 1.0: // error, 실수도 불가
...
}

------------------------------------------

class Ex{
    public static void main(String[] args){
        System.out.println("현재 월을 입력하세요");

        Scanner sc = new Scanner(System.in);
        int month = sc.nextInt(); //화면을 통해 얻은 숫자를 입력받음

        switch(month){
            case 3:
            case 4:
            case 5:
                System.out.println("현재의 계절은 봄입니다.");
                break;
            case 6: case 7: case 8:
                System.out.println("현재의 계절은 여름입니다.");
                break;
            case 9: case 10: case 11:
                System.out.println("현재의 계절은 가을입니다.");
                break;
            default:
                System.out.println("현재의 계절은 겨울입니다.");

        }
    }
}


임의의 정수 만들기

  • Math.random() : 0.0과 1.0사이의 임의의 double 값을 만들어 줌
  • 0.0 <= Math.random() < 1.0
  • 0.0 * 3 <= Math.random() * 3 < 1.0 * 3
  • 0.0 <= Math.random() * 3 < 3.0
  • (int) 0.0 <= (int)(Math.random() * 3) < (int)3.0
// ex) 1~10의 값을 10개 추출해라

int num = 0;
for (int i = 1; i<=10; i++){
  System.out.println((int)(Math.random()*10)+1); // 1~10범위의 난수 10개 출력
}


반복문

  • for문 : 조건을 만족하는 동안 블럭{}을 반복
  • 중첩for문 : for문을 중첩하여 사용하는 형태
for(초기화;조건식;증감식){
  참일 때 수행되는 부분
}

for(int i=1;i<=10;i++){
  System.out.println(i)
}

for (int i=1, j=10;i<=10;i++,j--){ // 두 변수를 사용할 수 있으며 이 때는 두 변수의 타입이 같아야 함
  System.out.println(i,j)
}

for (;;){
  System.out.println("무한반복");
}

// 중첩for문을 사용하여 별 찍기
for (int i = 1; i<=5; i++){
  for (int j=1; j<=10; j++){
    System.out.print("*");
  }
  System.out.println();
}


while 문

  • 조건을 만족하는 동안 블럭{}을 반복 - 반복횟수를 모를 때 사용하기 유용
while(조건식){
  // 조건식이 참일 때만 수행
}

int i = 1;
while(i <= 10){
  i++;
}


break 문

  • 자신이 포함된 하나의 반복문을 벗어남
int sum = 0;
int i = 0;

while(true){
  if (sum>=100){
    break
  }
  ++i;
  sum += i
}


continue 문

  • 자신이 포함된 반복문의 끝으로 이동, continue의 아래에 있는 코드는 실행하지 않고 다음 반복문으로 넘어감
  • for (int i = 1; i<=10; i++){
    if (i % 2 == 0){
    continue
    }
    System.out.println(i);
    }


이름붙은 반복문

  • 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있음
Loop1 : for (int i=1; i<=10; i++){
    for (int j=1; j<=10 j++){
      if (j == 5){
        break Loop1;
        // continue Loop1;
      }
    }
}





  • 자바의 정석 챕터 4에서는 조건문과 반복문에 대해서 배웠습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함