728x90
1. 제어문
제어문 : 자바 프로그램읠 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해줌
제어문은 1) 조건식 2) 중괄호({}) 블록으로 구성
- 조건식의 연산결과에 따라 블록 내부의 실행여부가 결정된다.
1) 제어문의 종류
- 제어문에는 조건문과 반복문이 있다.
- 조건문 : if문 / switch문
- 반복문 : for문 / while문 / do-while문
- 조건문의 경우, 제어문 블록을 빠져나와 정상 흐름(위에서 아래)으로 돌아온다.
- 반복문의 경우, 제어문 블록을 빠져나와 처음으로 다시 되돌아가 반복 실행한다. (loop)
- 제어문안에 또다른 제어문을 넣을 수 있어서 개발자가 원하는 복잡한 흐름제어도 가능
2. 조건문
1) if문
if (조건식) {
실행문;
실행문;
}
if 문의 중괄호 블록은 여러개의 실행문을 하나로 묶기 위해 작성된다, if 뒤에 나오는 조건식이 참(true)이면 중괄호 블록 안의 실행문을 실행한다.
int score = 95;
if (score > 90){ // 조건식 (score > 90)이 참이면 중괄호 블록 실행
System.out.println("점수가 90보다 크다");
System.out.println("A 입니다");
}
2) if-else문
- if문의 조건식이 true면 if문의 블록이 실행되고, 조건식이 false면 else 블록이 실행된다. 조건식의 결과에 따라 이 두 개의 블록 중 어느 한 블록의 내용만 실행하고 전체 if문을 벗어나게 된다.
int score = 95;
if (score > 90){ // 조건식 (score > 90)이 참이면 if 블록 실행
System.out.println("점수가 90보다 크다");
System.out.println("A 입니다");
}
else { // if의 조건식(score > 90)이 거짓이면 else 블록 실행
System.out.println("점수가 90보다 작습니다");
System.out.println("B 입니다");
}
3) if - else if - else문
- 조건문이 여러개인 if문도 가능하다. 처음 if문의 조건식이 false일 경우, 다른 조건식의 결과에 따라 실행 블록을 선택할 수도 있는데 if문 끝에 else if문을 붙이면 된다.
- else if문은 수의 제한이 없다.
- else if문 뒤에는 else 블록을 추가할 수 있는데 위에 있는 모든 조건식이 거짓(false)인 경우에 else의 블록을 실행한다.
int score = 95;
if (score > 90){ // 조건식 (score > 90)이 참이면 if 블록 실행
System.out.println("점수가 90보다 크다");
System.out.println("A 입니다");
}
else if(score>= 80) { // 위 if문 조건에는 부합하지 않지만 else if문에는 부합하는 경우
System.out.println("점수가 80~89입니다");
System.out.println("B 입니다");
}
else if(score>= 70) {
System.out.println("점수가 70~79입니다");
System.out.println("C 입니다");
}
else { // 위 조건 중 하나도 해당하지 않는다면, score 가 70 이하라면
System.out.println("점수가 70보다 작습니다");
System.out.println("D 입니다");
}
4) 중첩 if문
- if문 안에 또다른 if문을 사용할 수 있다. 이것을 중첩 if문이라고 부른다. 중첩의 단계는 제한이 없고 if문 뿐만 아니라 제어문의 경우 다 중첩할 수 있다.
int score = 95;
if (score > 90){
if (score >= 95){
System.out.println("점수가 95이거나 그보다 크다");
System.out.println("A+ 입니다");
}else{
System.out.println("점수가 90보다 크다");
System.out.println("A 입니다"); }
}
5) switch문
- switch문도 if문과 같은 조건제어문에 해당한다.
- switch문은 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다. (if문과의 차이점)
- switch문은 괄호 안의 값과 동일한 값을 갖는 case로 가서 실행문을 실행시킨다. 괄호 안의 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 시킨다. (default는 생략가능)
- case에는 숫자도 가능하고 문자, 문자열도 가능하다 .
int num = (int)(Math.random()*6)+1;
switch(num){
case 1 : // num의 값이 1인 경우,
System.out.println("1이 나왔습니다");
break;
case 2 :
System.out.println("2가 나왔습니다");
break;
case 3 :
System.out.println("3이 나왔습니다");
break;
case 4 :
System.out.println("4가 나왔습니다");
break;
case 5 :
System.out.println("5가 나왔습니다");
break;
default: //default를 안쓰면 아무것도 출력안됨
System.out.println("6이 나왔습니다");
break;
}
3. 반복문
반복문은 어떤 작업(코드)들을 반복적으로 실행해야할 때 사용한다.
1) for문
- for문은 정해진 횟수만큼 반복해야할 때 사용한다.
int sum = 0 ;
for (int i = 1; i <= 100; i++){ // i가 1부터 100일때까지 중괄호 블록의 실행문을 반복한다.
sum += i ;
}
System.out.println(sum);
for문의 구조를 살펴보면 for (초기화식 ; 조건식 ; 증감식) { 실행문 } 으로 구성되어 있다.
- 초기화식에서 선언된 변수는 for문 블록 내에서 사용되는 로컬 변수이다. 따라서 for문 바깥에서 사용할 수 없다.
- 조건식이 true면 실행문을 실행시키고 false면 for문 블록을 실행시키지 않고 끝난다.
- 만약 초기화식이 필요없는 경우 생략할 수 있다. ex) for ( ; i≤100 ; i++)
- for문 작성시 , 초기화 식에서 루프 카운트 변수를 선언할 때 부동소수점타입은 사용하지 말아야한다. → 루프 실행 시 지정된 횟수만큼 실행 안될 수 있음.
2) while문
- for문이 정해진 횟수만큼 반복한다면 while문은 조건식이 true인 경우 계속해서 반복한다.
- 조건식에는 비교 or 논리연산식이 주로 오는데, 조건식이 false가 되면 반복행위를 멈추고 while문을 종료한다.
int i = 1; //카운터 변수 i
while (i<=10) { //i가 10과 같거나 작을 때까지
System.out.println(i);
i++ ; // i+=1
}
- 조건식에는 boolean 변수나 true/false 값을 산출하는 연산식이 올 수도 있음
- 만약 조건식에 true가 들어가면 (while (true) {} ) 항상 조건식이 true가 되면서 무한루프를 돈다.
- 무한루프는 무한히 반복하기 때문에 언젠가는 while문을 빠져나가기 위한 코드가 필요하다. (if)
int i = 1;
while (i>0) {
System.out.println(i); // i는 항상 0보다 크기때문에 무한루프를 돌게된다.
i++;
}
// 무한루프를 빠져나오기 위한 코드 추가
int i = 1;
while (i>0) {
if(i==10) {
System.out.println(i);
System.out.println("Finished!");
break; // while문을 빠져나오기 위한 break 추가
}
System.out.println(i);
i++;
}
3) do-while문
do-while문은 조건식에 의해 반복 실행된다는 점에서는 while문과 동일하다.
- while문은 시작할 때부터 조건식을 검사하여 블록 내부를 실행할지 결정하지만 경우에 따라서는 블록 내부의 실행문을 우선 실행시키고 실행 결과에 따라서 반복 실행을 계속할지 결정하는 경우도 생긴다. → 이럴 때 do-while문을 사용할 수 있다.
- 즉 , do-while문은 무조건 한 번 이상 실행되는 반복문이다.
int i = 10;
do {
System.out.println(i);
i--;
} while(i > 1);
- 실행문을 먼저 실행할 때 do-while문을 주로 사용한다.!
참고 자료
이것이 자바다 - 신용권, 한빛미디어
반응형
'Study > Java' 카테고리의 다른 글
[Java] 자바의 연산자 (0) | 2022.01.06 |
---|---|
[Java] 자바의 변수 / 상수 / 자료형 / 특수문자 (0) | 2022.01.04 |
[Java] 자바의 언어적 특성 정리 (0) | 2022.01.03 |
[Java] Intellij 에서 외부 라이브러리 사용하기(Gson) (0) | 2021.07.04 |