자주쓰는 조건식
조건문과 반복문 (제어문)
조건문
- 조건을 만족할 때만 {} 를 수행 (0~1번)
- if ,switch
반복문
- 조건을 만족하는 동안 {}를 수행(0~n번)
- for, while
if 문
조건식이 참일때 괄호 {}안에 문장들을 수행한다
1 2 3 4 5
| if (조건식) { } else { }
|
블록{ }
- 여러 문장을 하나로 묶어주는 것
- 하나만 실행하면 { } 생략가능
if -else if 문
- 여러개 중의 하나의 블록만 실행하고 나옴 - 여러개의 조건식을 포함한 조건식
- if-else if문의 특성!!! 해당되는것 하나만 실행됨.
1 2 3 4 5 6 7 8 9
| if (조건식1) { } else if (조건식2) { } else if (조건식3) { } else { }
|
중첩 if문 - if문 안의 if
- 형태는 다음과같다.
- else는 가장 가까운 if문에 붙는것이므로 주의 (!!!)
switch문
- 처리해야 하는 경우의 수가 많을 떄 유용한 조건문
- 조건식의 처리를 한 값에 해당하는 case로 이동후 괄호안에 문장 수행
- case안에 break문이 없다면 default문까지 전부 다 수행하므로 빼먹지말기
- default문은 조건식의 결과가 일치하는게없으면 돈다
if문과 switch문 차이
- if 문은 조건식 결과 true || fasle
- switch문은 조건식 결과 정수, 문자열 가능
- if문은 조건식1,2,3할때마다 연산해야함
- switch문은 조건식 한번만 연산후, 해당 case 찾아서 실행. 빠름
- 보통은 if문으로 먼저 작성후 조건이 많다면 switch문으로 변경 생각
switch문 제약조건
- switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
- case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다. (변수안됨)
- ONE은 정수 상수이므로 가능 final int
- 예시
- 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
|
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 0<= (int)Math.random*3<3
0+1<= (int)(Math.random*3)+1<3+1 1<= (int)(Math.random*3)+1<4
int num = 0; for (int i =1; i <=20; i++) { System.out.println(Math.random()); System.out.println((int)(Math.random()*10)); System.out.println((int)(Math.random()*10)+1); System.out.println((int)(Math.random()*11)-5); }
|
for 문
조건을 만족하는 동안 블럭{ }을 반복 - 반복횟수를 알 때 적합
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; for (i=1;i<=10;i++) { System.out.println("i="+i); } System.out.println(i);
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생략불가
do-while 문(블록이 무조건 1번은 실행됨)
- 블럭 { } 을 최소한 한번 이상 반복 - 사용자 입력받을 때 유용
break문, continue문
- break문은 자신이 포함된 하나의 반복문을 벗어난다
- continue문은 자신이 포함된 반복문의 끝으로 이동- 다음 반복으로 넘어감
이름붙은 반복문
- 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다.
- for문에 이름붙인후 break문 뒤에 이름 입력!!