1. 조건문 - if, switch
1.1 if문
조건식의 결과는 반드시 true 또는 false이어야 한다.
if (조건식) {
//조건식이 true일 때 수행될 문장들을 적는다.
}
블럭{} : 블럭 내의 문장이 하나뿐 일 떄는 괄호 생략 가능.
1.2 if-else문
조건식의 결과가 참이 아닐 떄, 즉 거짓일 때 else블럭의 문장을 수행.
1.3 if-else if문
처리해야할 경우의 수가 셋 이상인 경우에 사용.
1.4 중첩 if문
if문의 블럭 내에 또 다른 if문을 포함시키는 것. 중첩의 횟수에는 거의 제한이 없다.
내부의 if문은 안쪽으로 들여쓰기를 해서 구분될 수 있도록 작성해야 한다.
1.5 switch문
처리할 경우의 수가 많은 경우에 작성하는 것이 좋다. switch문도 중첩이 가능하다.
조건식을 먼저 계산한 다음, 그 결과와 일치하는 case문으로 이동한다.
-switch문의 제약조건
1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
2. case문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.
2. 반복문 - for, while, do-while
2.1 for문
반복 횟수를 알고 있을 때 적합하다.
for (초기화;조건식;증감식) {
//조건식이 참일 때 수행될 문장들을 적는다.
}
조건식의 값이 참이면 반복을 계속하고, 거짓이면 반복을 중단하고 for문을 벗어난다.
조건식이 생략된 경우 참으로 간주되어 무한 반복문이 된다.
public class FlowEx16 {
public static void main(String[] args) {
for(int i =1;i<=5;i++) {
for(int j=1;j<=10;j++) {
System.out.print("*") ;
}
System.out.println();
}
}
}
for도 중첩이 가능하다.
2.2 while문
while문은 먼저 조건식을 평가해서 조건식이 거짓이면 문장 전체를 벗어나고, 참이면 블럭{} 내의 문장을 수행하고 다시 조건식으로 돌아간다. 조건식이 거짓이 될 때까지 과정이 반복된다.
초기화나 증감식이 필요하지 않은 경우라면 for문보다 while문이 적합하다.
while문의 조건식은 생략할 수 없다. 항상 참이 되도록 하려면 반드시 true를 넣어야 한다.
2.3 do-while문
do {
//조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
} while (조건식);
while문과 반대로 블럭{}을 먼저 수행한 후에 조건식을 평가한다. 블럭이 최소한 한번은 수행될 것을 보장한다.
class FlowEx29 {
public static void main(String[] args) {
for(int i=1;i <100;i++) {
System.out.printf("i=%d", i);
int tmp = i;
do {
if(tmp%10%3==0 && tmp%10!=0)
System.out.print("짝");
} while ((tmp /=10) !=0);
System.out.println();
}
}
}
2.4 break문
자신이 포함된 가장 가까운 반복문을 벗어난다. 특정 조건 만족하면 반복문을 벗어나도록 한다.
2.5 continue문
반복문 내에서만 사용될 수 있으며, continue를 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
반복문 전체를 벗어나지 않고 다음 반복을 수행한다는 점이 break문과 다르다.
2.6 이름 붙은 반복문
break문은 근접한 하나의 반복문만 벗어날 수 있기 때문에, 여러 개의 반복문이 중첩된 경우에는 break문으로 중첩 반복문을 완전히 벗어날 수 없다. 그렇기 때문에 중첩 반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 반복을 건너뛸 수 있다.
class FlowEx33 {
public static void main(String[] args) {
Loop1 : for(int i=2;i <=9;i++) {
for(int j=1;j<=9;j++) {
if(j==5)
break Loop1;
break;
continue Loop1;
continue;
System.out.println(i+"*"+j+"="+i*j);
}
System.out.println();
}
}
}
'공부기록 > 자바의 정석' 카테고리의 다른 글
[Java의 정석] 8. 예외처리 exception handling (0) | 2022.05.22 |
---|---|
[Java의 정석] 7. 객체지향 프로그래밍2 (0) | 2022.05.08 |
[Java의 정석]6. 객체지향 프로그래밍1 (0) | 2022.05.01 |
[Java의 정석] 5. 배열 (0) | 2022.04.01 |
[Java의 정석] 3. 연산자 (0) | 2022.03.24 |