본문 바로가기
Language/Java

JAVA입문-2 (제어문)

by 드럼치는 코린이 2021. 2. 16.
728x90
반응형

[조건문]

어떤 문장은 수행하고 어떤 문장은 수행하고 싶지 않을 때 사용한다.

Java에서 관련된 문법으로는 if, switch 문을 제공한다.

ex. if문의 조건이 참이라면 조건문을 실행.

ex. if문의 조건이 거짓이라면 조건문을 실행하지 않는다.

따라서 if문은 조건이 맞을 때만 실행된다.
if문에 블록을 설정하지 않으면 실행문이 여러 개라도 가장 위에 것만 실행된다.

ex. if else구문

else if문은 여러번 사용 가능하다. 하지만 가급적이면 else if문을 많이 사용하지 않는 것을 추천.

[논리 연산자]

A, B (피연산자)

A && B (논리곱)
: 피연산자가 모두 True일 때만 True값을 리턴한다. 그렇지 않을 때는 False를 리턴한다.

A || B (논리합)
: 피연산자 중 하나라도 True라면 Truer값을 리턴한다. 그렇지 않을 때는 False를 리턴한다.

!A (논리부정)
: A피연산자의 값을 반대로 리턴한다. (ex. A가 True라면 False를 리턴)

A ^ B (배타적 논리합)
: 피연산자가 하나는 True, 하나는 False일 때만 True를 리턴한다. 즉, 두 조건 값이 다를 때만 True를 리턴한다.

[삼항 연산자]

Java에서 삼항 연산자는 하나밖에 없음.

ex. int b1 = (5 > 4) ? 50 : 40; 만약 비교 연산자의 값이 참이라면 b1에 50을 저장, 거짓이라면 b1에 40을 저장한다.

ex.

문자도 되는지 yes와 no를 입력해봤는데 error가 되었다. int값에는 문자열을 출력할 수 없기 때문인가?

(+추가 문제 해결) 문자열을 출력하기 위해 string을 입력해봤는데 안돼서 좌절하던 중 대소문자 구분을 해야 실행이 되는 것을 깨닫고 String로 입력하여 실행하니 실행되었다. 

ex. 삼항 연산자는 if문과 비슷하게 쓰이기 때문에 삼항 연산자나 if문 중 편한 것을 써도 괜찮다고 한다.

[switch문]

어떤 변수의 값에 따라서 문장을 실행할 수 있도록 하는 제어문이다.

swithch문에서 사용하는 키워드는 switch, case, default, break를 사용한다.

ex. switch안 변수 값이 case값과 같다면 그 지점의 case부터 default까지 전부 출력한다.

즉, case성질은 값이 만나는 지점부터 default까지 출력함. 그래서 break를 잘 사용해야 한다.

ex. value가 1이기 때문에 case 1을 만나서 case 1 구문을 실행한 후 1을 출력하고 break를 만나 switch 종료.

ex. value가 2이기 때문에 case 2를 만나서 case 2 구문을 실행한 후 2를 출력하고 break를 만나 switch 종료. 

따라서 swithch구문을 모두 실행하고 싶을 때는 break를 빼고 실행하면 되고 원하는 값만 출력하고 싶다면 break를 적절히 사용하면 된다.

ex. jdk version7 이상부터는 switch안 변수에 정수뿐만 아니라 문자도 사용 가능.

 ex.  같은 동작을 하는 case문은 한 번에 처리할 수 있다.

import java.util.Calendar;
public class SwitchExam {
    public static void main(String[] args) {
        // 오늘이 몇 월인지 month에 저장합니다.
        int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
        String season = "";
        
        // 다음과 같이 case문을 한번에 사용하면 더 짧게 코드를 짤 수 있습니다.
        switch(month) {
            case 1:
            case 2:
            case 12:
                season = "겨울";
                break;
            case 3:
            case 4:
            case 5:
                season = "봄";
                break;
            case 6:
            case 7:
            case 8:
                season = "여름";
                break;
            case 9:
            case 10:
            case 11:
                season = "가을";
                break;
        }
        System.out.println("지금은 " + month + "월이고, " + season + "입니다.");
    }
}

[while문] 

반복문. 어떠한 것을 반복적으로 사용하고 싶을 때.

Java에서 반복문은 while, do while, for 문을 제공한다.

<1> while문

조건이 충족될 때까지 반복하는 것이기 때문에 while문에 조건을 넣고 그 안에 조건이 만족할 수 있도록 코드를 작성해주고 조건이 충족되면 그 반복문을 빠져나올 수 있도록 장치를 해야 한다. 그렇지 않으면 무한루프로 계속 프로그램이 돌아감.

ex. 무한루프 (while문에 조건식은 있지만 블록 안에 조건식을 만족할 수 있는 코드를 작성하지 않았기 때문에 프로그램이 무한적으로 실행된다.

ex. 0~9까지 출력

ex. 1~100까지의 합을 구해라.

<2> do while 문

while 문의 경우 조건이 만족되지 않을 때 실행되지 않지만, do while 문은 무조건 한 번은 수행된다.

ex. 콘솔에 직접 입력하여 값을 얻을 때 사용하기도 함.

<3> for 반복문

for 구문 자체에 변수 초기화, 조건식, 증감 식이 한 줄로 표현된다.

변수 초기화 상태에서 조건식이 만족하면 for문 블록 안에 있는 실행문이 실행되고 증감 식이 적용되는 것을 조건이 만족할 때까지 반복하게 된다.

ex. 1~100까지 합을 더해라.

ex. 1~100까지 짝수의 합을 더해라. (2가지 방법)

1번 방법 (짝수인 것만 계산)
2번 방법 (홀수를 제외하고 계산)

ex. i가 50이면 그만 실행하고 싶다면.

** continue와 break는 while, do while, for 문 모두 사용 가능하기 때문에 응용해서 사용하면 된다.

728x90
반응형

'Language > Java' 카테고리의 다른 글

JAVA입문-6 (상속)  (0) 2021.02.27
JAVA입문-5 (클래스 다듬기)  (0) 2021.02.26
JAVA입문-4 (클래스와 객체)  (2) 2021.02.21
JAVA입문-3 (배열)  (0) 2021.02.18
JAVA입문-1 (변수와 계산)  (0) 2021.02.13

댓글