반응형
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