1. 제어문
- 프로그램의 흐름을 제어하는 문 (조건문 / 반복문 등등)
2. 조건문
* IF문
- 조건식이 참인 경우에는 명령문을 실행한다. 거짓인 경우 명령문을 실행하지 않고 넘어간다
(조건문이 또 있을경우 다음 조건문 실행)
- 명령문이 하나인 경우 {} 생략가능
- 조건문은 논리식 비교식 등 결과값이 true / false만 올수 있다
if("조건문") {// 조건문이 true일 경우
"명령문 1"; // 명령문 1 실행
} else {
"명령문 2"; // 조건문이 거짓인 경우 명령문 2 실행
};
혹은 명령문이 하나일 경우
if("조건문")
"명령문 1";
else
"명령문 2";
{} 생략 가능
- 여러 조건문 사용시
if("조건문1") {
"명령문"; // 조건문 1이 참인경우
} else if("조건문2") {
"다른 명령문"; // 조건문 1이 거짓, 조건문 2가 참인경우
} else {
"또 다른 명령문"; // 조건문 1,2 모두 거짓인 경우 실행
}
- 보통 if ~ else 짝을 이루며(생략가능) else를 사용할 경우 조건문을 넣지 않는다 (위 조건이 거짓인 경우 혹은 나머지일 경우 실행)
* SWITCH문
- switch 문은 스위치 라고 생각하면 되려나..
가령 집에 불을 키고자 할때 안방이면 안방불 스위치를 거실이면 거실불 스위치를 이라고 생각하면 될거같다
switch(정수 or 문자열) {
case 값1 :
"명령문 1"; // 값1이 switch로 들어올 경우 실행할 명령문
break; // switch문을 빠져 나가는 명령어(없을 경우 break를 만나거나 맨 밑까지 실행됨)
case 값2 :
case 값3 :
...
default :
"명령문 d"; // 어떤 케이스에도 값이 일치하지 않는경우 실행 (if의 else개념)
break; // 생략가능
};
- 예제를 보자
// 점수별로 학점 출력
int korean = 90;
int english = 90;
int math = 90;
int average = (korean + english + math) / 30; // 평균값 구할때 꼭 괄호 쳐주자
switch(average) {
case 10:
case 9:
System.out.printf("A학점");
break;
case 8:
System.out.println("B학점");
break;
case 7:
System.out.println("C학점");
break;
case 6:
System.out.println("D학점");
break;
default :
System.out.println("F학점");
};
* 국/영/수 점수의 평균을 구해서 학점을 출력하는 예제이다
30을 나눈 이유는 평균이 소수점이 나오는 경우 int형이 되면서 소수점이 버려진다
(그렇지 않으면 모든 소수점도 해야됨, int형은 소수점이 있어도 무조건 버려진다)
만점인 경우도 A학점을 줘야하니 명령문/break문을 입력하지 않고 넘기게 되면 자연스레 case 9로 넘어갈것이고
평균이 100~90 인경우 A, 89~80인경우 B... 60점 미만인 경우 default로 가게 되어 F학점이 나오게 된다
3. 반복문
* FOR문
- for 문은 초기식,조건식,증감식으로 이루어져 있으며 조건식이 참일경우 반복 실행된다
- for 문은 보통 반복 횟수가 정해져 있는경우 주로 사용한다
for(초기식; 조건식; 증감식) {
"명령문"; // 조건식이 참인 경우 실행할 명령문
}
- 예제를 보자
for(int i = 1; i <= 10; i++) {
System.out.println(i);
};
* 순서는 초기식 => 조건식(참) => 명령문 => 증감식 => 조건식(참) => 명령문 => 증감식...조건식(거짓) 끝
예제 출력은 1 2 3 4 5 6 7 8 9 10 이 나올것이다
* WHILE문
- while문은 for문과 비슷하며 조건식이 참일경우 계속 반복한다 (단, 조건식엔 true, false만 올 수 있다)
- 반복횟수를 모를때 주로 사용하며 알고 있어도 사용가능하다
while(조건식) {
"명령문";
[증감식];
};
- 예제를 보자
int i = 1;
while(i <= 10) {
System.out.println(i);
i++;
};
* 조건식이 참이면 명령문을 실행하고 증감식을 실행한뒤 다시 조건식으로 간다
예제 출력은 1 2 3 4 5 6 7 8 9 10 이 나올것이다
*주의사항
while(true) {
"명령문";
};
- 빠져나오는게 없으면 무한루프 돈다
- while을 for문으로 for문을 while문으로 서로 바꿔보는 연습을 해보자
* DO~WHILE문
- do는 while문이 거짓이어도 무조건 한번은 실행된다
do {
"명령문"
} while(조건식) {
"참일때 명령문"
};
4. 중첩
- 중첩이라 함은 제어문 안에 또 다른 제어문을 사용하는 것을 말한다
if() {
if() {
} else {
};
} else {
};
/////////////////////////////////////////
while() {
while() {
};
};
/////////////////////////////////////////
for() {
for() {
};
};
- 예제
System.out.println("[* 피라미드]");
for(int k=1;k<=5;k++) {
for(int j=1;j<=5;j++)
if(k>=j) System.out.printf("%c",'*');
System.out.println();
};
System.out.println("[for 구구단]");
for(int k=1;k<=9;k++) {
for(int j=2;j<=9;j++)
System.out.printf("%d * %d = %-4d",j,k,j*k);
System.out.println();
};
System.out.println("[while 구구단]");
int k=1;
while(k<=9) {
int j=2;
while(j<=9) {
System.out.printf("%d * %d = %-4d",j,k,k*j);
j++;
};
System.out.println();
k++;
};
5. 기타 제어문
* break; (switch 한정)
- 해당 제어문을 빠져 나갈때 사용
- 이 밑에 명령들은 실행되지 않는다
while(true) {
"명령문1";
break;
"명령문2"; // 실행되지 않는다
};
* continue;
- 반복문의 처음으로 이동하여 다시 반복을 수행한다
for문의 경우 증감식, while/do~while문의 경우 반복조건으로 이동
- continue 역시 밑에 명령문은 실행되지 않음
for(int i = 1; i <= 5; i++) {
if(i == 1) {
continue;
};
System.out.println(i);
};
- 출력은 1을 제외하고 2, 3, 4, 5가 출력될 것이다
'개발 > JAVA' 카테고리의 다른 글
10. JAVA static블락 / wrapper클래스 : 네이버 블로그 (0) | 2020.06.08 |
---|---|
09. JAVA 클래스 / 객체 생성 및 사용 / 접근지정자 / 전역, 지역 변수 / static : 네이버 블로그 (0) | 2020.06.08 |
07. JAVA의 연산자 (Operator) (0) | 2020.06.08 |
06. JAVA 변수의 자료형(Data Type) / 상수(Conastant) / 형변환(Type Casting) / 이스케이프(Escape) / 형식 문자열 (0) | 2020.06.08 |
05. JAVA의 변수 (variable) (0) | 2020.06.08 |