LostCatBox

Java 배우기 CH04

Word count: 673Reading time: 4 min
2022/12/23 Share

자주쓰는 조건식

Untitled

조건문과 반복문 (제어문)

조건문

  • 조건을 만족할 때만 {} 를 수행 (0~1번)
  • if ,switch

반복문

  • 조건을 만족하는 동안 {}를 수행(0~n번)
  • for, while

if 문

조건식이 참일때 괄호 {}안에 문장들을 수행한다

1
2
3
4
5
if (조건식) {
//조건식이 true일때 수행될 문장들을 적는다
} else {
//조건식이 false일때 수행될 문장들을 적는다
}

블록{ }

  • 여러 문장을 하나로 묶어주는 것
  • 하나만 실행하면 { } 생략가능

Untitled

if -else if 문

  • 여러개 중의 하나의 블록만 실행하고 나옴 - 여러개의 조건식을 포함한 조건식
  • if-else if문의 특성!!! 해당되는것 하나만 실행됨.
1
2
3
4
5
6
7
8
9
if (조건식1) {
//조건식1이 true일때 수행될 문장들을 적는다
} else if (조건식2) {
//조건식2이 true일때 수행될 문장들을 적는다
} else if (조건식3) {
//조건식이 true일때 수행될 문장들을 적는다
} else {
//조건식 모두 false일때 수행될 문장들을 적는다. 생략가능
}

중첩 if문 - if문 안의 if

  • 형태는 다음과같다.
  • else는 가장 가까운 if문에 붙는것이므로 주의 (!!!)

Untitled

Untitled

switch문

  • 처리해야 하는 경우의 수가 많을 떄 유용한 조건문
  • 조건식의 처리를 한 값에 해당하는 case로 이동후 괄호안에 문장 수행
  • case안에 break문이 없다면 default문까지 전부 다 수행하므로 빼먹지말기
  • default문은 조건식의 결과가 일치하는게없으면 돈다

Untitled

Untitled

if문과 switch문 차이

  • if 문은 조건식 결과 true || fasle
  • switch문은 조건식 결과 정수, 문자열 가능
  • if문은 조건식1,2,3할때마다 연산해야함
  • switch문은 조건식 한번만 연산후, 해당 case 찾아서 실행. 빠름
  • 보통은 if문으로 먼저 작성후 조건이 많다면 switch문으로 변경 생각

switch문 제약조건

  1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
  2. case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다. (변수안됨)

Untitled

  • ONE은 정수 상수이므로 가능 final int
  • 예시

Untitled

  • break없애면 다른 케이스의 break만날때까지 …계속 내려감.

임의의 정수 만들기

  • Math.random() - 0.0과 1.0사이의 임의의 double값을 반환
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//1~3사이의 정수를 얻고싶다면
//*3을 한후 (원하는 값의 갯수)
0.0*3 <= Math.random()*3 < 1.0*3
0.0 <= Math.random*3<3.0 // 최대값은 2.999999나옴

//각 변을 int형으로 변환한다.
(int)0.0 <= (int)Math.random*3<(int)3.0 // 최대값은 2.999999나옴
0<= (int)Math.random*3<3

//각 변에 1을 더한다
0+1<= (int)(Math.random*3)+1<3+1
1<= (int)(Math.random*3)+1<4

int num = 0;
//괄호 {} 안의내용을 20번 반복한다
for (int i =1; i <=20; i++) {
System.out.println(Math.random()); //0.0<=x<1.0
System.out.println((int)(Math.random()*10)); //0.0<=x<10.0 , 0~9
System.out.println((int)(Math.random()*10)+1); //1<=x<11 , 1~10

//-5~+5까지 랜덤
System.out.println((int)(Math.random()*11)-5); //-5<=x<6 ,-5~+5
}

for 문

조건을 만족하는 동안 블럭{ }을 반복 - 반복횟수를 알 때 적합

Untitled

1
2
3
4
5
6
7
8
9
10
for (int i =1;i<=3;i++) {
System.out.println("Hello");
}
for (int i =1;i<=3;i=i+1) {
System.out.println("Hello");
}

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

변수의 scope 범위

1
2
3
4
5
6
7
8
9
10
11
int i=1; //scope범위 -선언위치부터 선언된 블록의 끝까지, 초기화문을 밖으로 뺴서, 범위확장가능
for (i=1;i<=10;i++) {
System.out.println("i="+i);
}
System.out.println(i);

// 조건식을 생략하면, true로 간주되어, 무한반복문이 됨
int i=1;
for (;;) {
System.out.println("i="+i);
}

중첩 for 문

1
2
3
4
5
6
for(int i =1; i<=5;i++) {
for(int j=1;j<=10;j++) {
System.out.print("*");
}
System.out.println();
}

While 문

  • 조건을 만족시키는 동안 블럭 { } 을 반복 - 반복횟수 모를때
  • 조건식true생략불가

Untitled

do-while 문(블록이 무조건 1번은 실행됨)

  • 블럭 { } 을 최소한 한번 이상 반복 - 사용자 입력받을 때 유용

Untitled

break문, continue문

  • break문은 자신이 포함된 하나의 반복문을 벗어난다
  • continue문은 자신이 포함된 반복문의 끝으로 이동- 다음 반복으로 넘어감

이름붙은 반복문

  • 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다.
  • for문에 이름붙인후 break문 뒤에 이름 입력!!

Untitled

CATALOG
  1. 1. 자주쓰는 조건식
  2. 2. 조건문과 반복문 (제어문)
    1. 2.1. 조건문
    2. 2.2. 반복문
  3. 3. if 문
    1. 3.0.1. 블록{ }
  4. 3.1. if -else if 문
  5. 3.2. 중첩 if문 - if문 안의 if
  • 4. switch문
    1. 4.1. if문과 switch문 차이
    2. 4.2. switch문 제약조건
  • 5. 임의의 정수 만들기
  • 6. for 문
    1. 6.1. 변수의 scope 범위
    2. 6.2. 중첩 for 문
  • 7. While 문
    1. 7.1. do-while 문(블록이 무조건 1번은 실행됨)
  • 8. break문, continue문
    1. 8.1. 이름붙은 반복문