프로그램의 실행 흐름을 제어하는 문장.
조건문, 반복문, 분기문이 있다. 이 중 조건문과 반복문의 사용이 많다.
개발자가 원하는 방향으로 실행의 흐름을 바꾸는 것이다.
조건문 | 반복문 |
---|---|
조건을 만족할 때만 { }를 수행함 | 조건을 만족하는 동안 { }를 수행함 |
(0~1번 수행) | (0~n번 수행) |
if / if-else / if-else if / 중첩 if / switch
if(조건식) { //조건이 참일 때 시행될 문장들을 적는다. }
이때, 가장 중요한 것은 조건식의 결과는 반드시 true 또는 false이어야 한다.
if(조건식) { //조건이 참일 때 시행될 문장들을 적는다. } else{ // 조건이 거짓일 때 시행 될 문장들을 적는다. }
이때, 주의 할 점은 else문에는 조건식을 적지 않는다는 것이다. else는 후에 나오는 default와 비슷한 기능을 하니, 같이 알아둘 것 !
if (조건식 1) {// 조건식 1가 참일 때 시행될 문장들을 적는다. }
else if (조건식 2) {//조건식 2가 참일 때 시행될 문장들을 적는다.}
else if (조건식 3) {//조건식 3이 참일 때 시행될 문장들을 적는다. }
else { //마지막은 보통else로 끝나며, 이는 생략이 가능하다.
//위의 조건들 중 어떤 조건식도 만족하지 않을 때 수행 될 문장들을 적으면 된다}
if (조건식 1) { // 조건식 1가 참일 때 시행될 문장들을 적는다.}
if (조건식 2) { //조건식 1과 2가 모두 true일 떄 수행될 문장들} else {
}else { //조건식 1이 false일 때 수행 될 문장들
}
switch (조건식 1) {
case 값1 :
//조건식의 결과가 값1과 같을 경우 수행될 문장들
case 값2 :
//조건식의 결과가 값2와 같을 경우 수행될 문장들
//..이 때, if문과 다르게 case 사이사이에 {}는 사용 하지 않는다.
.
.
.
break; //switch문을 벗어난다.
//...
default;
//**조건식의 결과와 일치하는 case문이 없을 떄 수행 될 문장들(앞서 말한 else문의 else와 같은 역할)**
}
if문과 다르게, 처리해야 하는 경우의 수가 많을 때 유용한 조건문이다.
이 switch문은 제약조건이 존재한다.
조건식의 결과가 정수 또는 문자열이어야 하고 값은 정수 상수만 가능하며 중복되지 않아야 한다.
따라서 변수나 실수는 불가능 하다.
for (반복 횟수를 알 때) / while (반복 횟수를 모를 때) / do - while / break / continue
for(초기화;조건식;증감식){
//수행 될 문장
}
for문의 구조와 실행 순서만 잘 지킨다면 반복문을 수행하는데 큰 어려움은 없다. 하지만 중첩 for문의 경우 여러가지 for문이 겹치면서 다양한 예제들을 접해야할 필요성을 느꼈다.
EX1)- 5행의 * 10개 찍기
for문을 배우기 전이라면
System.out.println(*********);
System.out.println(*********)
System.out.println(*********)
System.out.println(*********)
System.out.println(*********)을 5번 반복했겠지만,
for문을 사용했을 때
for(int i = 1; i<=5; i++){
System.out.println(*********);
}로 간결하게 표현할 수 있다는 걸 알 수 있다.
이는 중첩 for문을 사용하게 될 경우
for(int i = 1; i<=5; i++){
for(int = 1; j<=10,j++){
System.out.print(*);
}
System.out.println();
}
으로 표현할 수도 있다.
EX2)-삼각형 모양의 별 출력하기
for(int i = 1, i<=5; i++){
for(int j =1 , j <= i , j++){
System.out.print(*);
}
System.out.println();
}
while ( 조건식 ) { } //조건식의 연산결과가 참인 동안 반복될 문장들을 적는다.
for | while |
---|---|
무한반복문의 (;;)를 생략가능 | 무한반복문의 true 생략 불가 |
for--->
for(초기식;조건식;증감식)
{System.out.println(i});
while--->
int i =1 ; while(i <= 10) {System.out.println } i++}
do{
//조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
} while (조건식) ; (끝에 ;를 생략하지 않도록 주의한다.)
이 제어문은 블럭을 최소한 한 번 이상 반복할 때 사용하므로 한번 이상의 실행이 필수적이기 때문에 반복적으로 사용자의 입력을 받아서 처리할 때 유용하다.
break문과의 차이점은 break문과 달리 반복문을 아예 벗어나는 것이 아니라, 다음 반복으로 건너뛴다는 것이다.