조건문 if문과 if-else문
public static void main(String[] args) {
int x = 10, y = 20;
int tmp = 0;
System.out.println("x"+ x + " y:" +y);
tmp = x;
x = y;
y = tmp;
System.out.println("x:"+ x + " y:" + y);
}
지금까지는 우리가 프로그래밍을 하면 위처럼 main메서드의 첫번째 줄 부터 쭉 실행이 되었었다.
근데, 앞으로 조건문과 반복문을 배우면, 이 실행 흐름을 원하는대로 바꿀 수 있다.
조건문
- 조건을 만족할떄만 {}를 수행(0~1번)
- if문
- switch문
if(score > 60){
System.out.println("합격입니다.");
System.out.println("축하드립니다.");
}
실행을 하다가 조건문을 만나면,
해당 조건문이 참이면 조건문 안의 문장을 실행하고 쭉 내려가는데,
거짓이면 조건문에 해당하는 문장들을 실행하지 않고 내려가서 그 다음문장들을 실행한다.
반복문
- 조건을 만족하는 동안 {}를 수행(0~n번)
- for문
- while문
int i = 10;
while (i-- > 0) {
System.out.println(i);
}
실행을 하다가 이 조건을 확인해서 이 조건을 만족하는 동안 계속 반복한다
그러다가 조건을 만족하지 않으면 벗어나서
그다음 문장들을 실행한다.
앞으로 이 조건문과 반복문을 이용해서 실행흐름을 바꿀거고,
이 조건문과 반복문은 프로그램의 실행 흐름을 바꿔준다고해서 "제어문"(flow control statement)이라고도 한다.
제어문 중에서 if문을 먼저 살펴보자.
if 문
- 조건식이 참(true)일 때, 괄호{}안의 문장들을 수행한다.
if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다.
}
조건식이 참일 때, 시작괄호와 끝괄호안에 있는 문장들이 수행된다.
만약 조건식이 거짓이면, 실행하지 않고 다음 문장으로 넘어간다.
if (score > 60) {
System.out.println("합격입니다.");
}
만약에 score의 값이 70인 경우, 조건문이 참이되어 조건문안의 문장들이 실행된다.
근데 만약에 score값이 30이면 조건문이 거짓이 되어 조건문 안의 문장들이 실행되지 않고 다음 문장들을 실행한다.
[조건식의 다양한 예]
조건문과 반복문은 조건식을 잘 작성해야 한다.
Python처럼 x가 90이상 100 이하일 때를 표현 하면 안된다.
90 <= x <= 100 이렇게 표현하면 안된다.
90 <= x && x <= 100 이렇게 표현해야 한다.
그리고, 문자열 비교때는 == 를 쓰면 안되고, str.equals()를 사용해야 한다.
이 메서드는 대소문자까지 구분해서 결과를 반환한다.
근데 맨밑에 있는 str.equalsIgnoreCase()는 대소문자를 구분하지 않는다.
블럭 { }
- 여러 문장을 하나로 묶어주는 것
if문이 조건이 참일 때 수행할 문장이 꼭 1개인 것은 아닐 것이다.
if문이 참일 때 수행할 문장들을 묶어주려고 블럭({})을 사용한다.
이때 중요한게, 코드의 가독성을 위해 탭(tab)키를 이용해서 들여쓰기를 한다.
if (score > 60)
System.out.println("합격입니다.");
그런데 만일, 위 문장처럼 if문에 속한 문장이 1개면, 괄호(블럭)을 생략할 수 있다.
주의 해야 할 것은,
깜박 잊고, 들여쓰기 했으니까 위의 예시처럼 두 문장이 다 if문에 속하는 것처럼 착각할 수 있는데,
괄호(블럭)을 생략할 경우, 첫번째 문장만 if문에 속한다는 것을 유의하자.
되도록이면 괄호를 생략하지 않는 것이 좋겠다.
if-else문
- 둘 중의 하나 - 조건식이 참일 때와 거짓일 때로 나눠서 처리
if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다.
}else {
// 조건식이 거짓(flase)일 때 수행될 문장들을 적는다.
}
조건식이 참일 때는 If블럭의 문장들이 수행되고,
조건문이 거짓일 때는, else블럭에 있는 문장들이 수행된다.
if(input==0) {
System.out.println("0입니다.");
}
if(input != 0) {
System.out.println("0이 아닙니다.");
}
이렇게 서로 조건이 상반될 경우, 아래와 같이 표현할 수 있다.
if(input==0) {
System.out.println("0입니다.");
} else {
System.out.println("0이 아닙니다.");
}
if else로 합쳐서 표현했다. 조건식 한번만 판단하기 때문에 더 효율적이고, 조건식을 이해하기에도 더 편리하다.
'JAVA' 카테고리의 다른 글
switch문 (0) | 2022.03.18 |
---|---|
if-else문, 중첩 if문 (0) | 2022.03.18 |
조건 연산자, 대입 연산자 (0) | 2022.03.17 |
논리 연산자, 논리 부정 연산자 (0) | 2022.03.16 |
비교 연산자, 문자열의 비교 (0) | 2022.03.16 |
댓글
이 글 공유하기
다른 글
-
switch문
switch문
2022.03.18 -
if-else문, 중첩 if문
if-else문, 중첩 if문
2022.03.18 -
조건 연산자, 대입 연산자
조건 연산자, 대입 연산자
2022.03.17 -
논리 연산자, 논리 부정 연산자
논리 연산자, 논리 부정 연산자
2022.03.16