4주차 과제: 제어문 · Issue #4 · whiteship/live-study · GitHub
제어문이란?
: 개발자가 원하는 방향으로 프로그램 실행 흐름을 바꿀 수 있도록 해주는 것이며,
제어문에는 조건에 따라 실행이 달라지는 조건문과 반복 실행해주는 반복문으로 구성되어 있다
조건문
조건문에서는 if문과 switch문이 있다
if문은 조건식에 따라 실행할 코드를 선택한다
사용 방식은 여러가지가 있다
public static void main(String[] args){
int a = 70;
// 1. 조건식 하나만 있는 경우
// 조건식에 해당되는 경우 실행된다
if ( a > 0 ) {
System.out.println("양수 입니다.");
}
// 2. 조건식과 else
// 조건식에 해당되는게 없으면 else 블록이 실행된다
if ( a > 0 ) {
System.out.println("양수 입니다.");
} else {
System.out.println("양수가 아닙니다.");
}
// 3. 조건문이 여러개와 else 구문
// 위에서부터 조건식을 확인하며, 해당되는 조건식이 나오면 실행되고 조건문을 끝낸다.
if ( a > 0 ) {
System.out.println("양수 입니다.");
} else if ( a < 0 ) {
System.out.println("음수 입니다.");
} else {
System.out.println("0 입니다.");
}
}
조건식 true, false 에 따라서 실행여부를 결정짓는다.
가장 먼저 나온 조건식의 true인 경우 해당 조건문 블록을 실행하고 조건문을 끝낸다
조건식에는 여러가지 방식으로 사용된다
public static void main(String[] args){
// 1. 조건식에 boolean 명시, 잘 사용안한다
if ( true ) {
System.out.println("true 입니다.");
}
// 2. 변수로 명시, 흔히 사용함
boolean flag = true;
if ( flag ) {
System.out.println("true 입니다.");
} else {
System.out.println("false 입니다.");
}
// 3. 논리연산, 흔히 사용함
int a = 85;
if ( a >= 90 && a < 100 ) {
System.out.println("A 입니다.");
} else if ( a >= 80 && a < 90 ) {
System.out.println("B 입니다.");
} else if ( a >= 70 && a < 80 ) {
System.out.println("C 입니다.");
} else {
System.out.println("재수강 입니다.");
}
}
switch문은 if문처럼 조건식이 true, false 따지지 않고 변수의 값에 따라 실행문이 선택된다
public static void main(String[] args){
switch (조건) {
case 값 :
실행문;
break;
case 값 :
실행문;
break;
case 값 :
실행문;
break;
default :
실행문;
break;
}
}
if문과는 다르게 변수의 값을 따지기 때문에 조건은 단일조건으로만 사용해야한다
public static void main(String[] args){
int a = 1;
switch (a) { // 조건은 단일조건이다. a > b 방식은 사용 못한다. boolean 형식이 아님!
case 값 1:
System.out.println("1 입니다.");
break;
case 값 2:
System.out.println("2 입니다.");
break;
case 값 3:
System.out.println("3 입니다.");
break;
}
}
case 구문안에 break; 가 보이는데 해당 조건을 실행하고 조건문을 빠져나가기 위해 사용되는 용도이다
break 가 없다면 case 에 상관없이 위에서부터 아래까지 모두 실행이 된다.
public static void main(String[] args){
int a = 1;
switch (a) {
case 1:
System.out.println("1 입니다.");
case 2:
System.out.println("2 입니다.");
case 3:
System.out.println("3 입니다.");
default :
System.out.println("기본 입니다.");
}
}
1 입니다.
2 입니다.
3 입니다.
기본 입니다.
반복문
반복문은 조건에 따라 코드를 반복적으로 실행해주는 구문이다
for문은 주로 반복적으로 일정 횟수를 실행할 때 사용한다 구성은 다음과 같다
public static void main(String[] args){
for((1)초기화식; (2)조건식; (4)증감식) {
(3)실행문;
}
}
for문의 실행순서는 (1)초기화식이며 (2)조건식을 평가해서 true이면 (3)실행문이 실행되고 false 면 for문이 종료된다. 실행문이 모두 실행되면 (4)증감식을 실행시키고 다시 (2)조건식으로 돌아간다.
public static void main(String[] args){
for(int a = 1; a <= 10; a++) {
System.out.println(a + " 입니다.");
}
}
1 입니다.
2 입니다.
3 입니다.
4 입니다.
5 입니다.
6 입니다.
7 입니다.
8 입니다.
9 입니다.
10 입니다.
반복문에는 break; 와 continue; 명령어가 존재한다
public static void main(String[] args){
for(int a = 1; a <= 10; a++) {
if (a > 5) { // a 가 5보다 크면 실행
break;
}
System.out.println(a + " 입니다.");
}
}
1 입니다.
2 입니다.
3 입니다.
4 입니다.
5 입니다.
break 는 for문을 종료시킨다
public static void main(String[] args){
for(int a = 1; a <= 10; a++) {
System.out.println("현재 a는 " + a + " 입니다.");
if (a > 5) { // a 가 5보다 크면 실행
continue;
}
System.out.println(a + " 입니다.");
}
}
현재 a는 1 입니다.
1 입니다.
현재 a는 2 입니다.
2 입니다.
현재 a는 3 입니다.
3 입니다.
현재 a는 4 입니다.
4 입니다.
현재 a는 5 입니다.
5 입니다.
현재 a는 6 입니다.
현재 a는 7 입니다.
현재 a는 8 입니다.
현재 a는 9 입니다.
현재 a는 10 입니다.
continue 는 실행문을 끝내고 증감식으로 순서를 넘긴다
break; 와 continue; 를 사용하면 for문을 의도적으로 끝낼 수도, 다음 순번으로 넘길 수도 있다.
좀 더 다양하게 활용할 수 있게 된다
while문은 조건식이 true일 경우 계속 실행해주는 반복문이다.
public static void main(String[] args){
while ((1)조건식) {
(2)실행문;
}
}
(1)조건식이 true 이면 (2)실행문이 실행되고 다시 (1)조건식으로 반복되는 구조이다
public static void main(String[] args){
int a = 1;
while ( a <= 10 ) {
System.out.println(a + " 입니다.");
a++;
}
}
1 입니다.
2 입니다.
3 입니다.
4 입니다.
5 입니다.
6 입니다.
7 입니다.
8 입니다.
9 입니다.
10 입니다.
주의할 점은 조건식이 false 가 안되는 경우 프로그램이 뻗을때까지 해당 while문이 실행된다는 점이다.
while문을 끝날 수 있게 조건식이나 실행문을 제어해야한다. for문처럼 break; 과 continue; 를 사용할 수 있다.
do-while문은 while문처럼 조건식에 의해 반복실행된다. while문과 차이점은 조건식이 실행문 아래에 있다는 것이다
public static void main(String[] args){
do {
(1)실행문;
} while ((2)조건식);
}
실행순서도 (1)실행문이 먼저 실행되고 (2)조건식으로 넘어온다. 이전 제어문과 다르게 조건이 맞아야 실행되는게 아니고 실행문을 한번 실행하고나서 조건식을 확인한다.
public static void main(String[] args){
int a = 10;
do {
System.out.println(a + " 입니다.");
a++;
} while ( a < 1 );
}
1 입니다.
조건에 상관없이 블록이 실행되어 출력된 모습이다.
'개발 & 방법론 > Java' 카테고리의 다른 글
6주차 : 상속 (0) | 2020.12.30 |
---|---|
5주차 : 클래스(Class) (0) | 2020.12.21 |
3주차 과제 : 연산자 (0) | 2020.11.27 |
2주차 과제: 자바 데이터 타입, 변수 그리고 배열 (0) | 2020.11.19 |
1주차 : JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (0) | 2020.11.17 |