JAVA 0주차 - 조건문

딩딩당당·2022년 11월 8일
0

자바 공부

목록 보기
3/3

1. 조건문 : if문, switch문

조건문은 조건식에 따라 실행할지 실행하지 않을지 판단하는 용도로 사용된다. 조건문은
if문과 switch문이 있으며 if문은 true, false를 판단해 실행하고 switch문은 변수의 값에 따라 실행된다.

1-1. if

if문은 주로 비교 연산자나 boolean 타입 변수를 통해 true, flase를 판단해 실행 여부를 결정한다. true면 해당 블록을 실행하고 flase이면 실행하지 않는다.

if( 조건식 ) {
	실행문
}
조건식이 true가 아닐 경우 내부에 작성된 실행문은 무시한다.

1-2. if~else

if~else문은 간단히 말하면 "이거 아니면~ 이거" 정도로 설명할 수 있을 것 같다.

if( 조건식) { //true 인지 판단
	실행문
}else{ //if문에 적힌 조건식이 true가 아닐 경우 실행
	실행문
}

if문에 적힌 조건식이 true일 때에는 else문에 적힌 실행문을 무시하고 반대로 flase 일 때에는 if문에 적힌 실행문을 무시한 채 else에 적힌 실행문만 실행한다.

한 단계 더 나아가면 if~ else if ~else문이 있다. 위 처럼 설명하자면 그냥 " 이거 아니면 이거~ 아니면 이거"를 나열한 것과 같다고 보면 된다. true false를 판단할 경우의 수가 많은 경우 계속해서 나열해 사용하지만 효율적으로 사용하지 않을 경우 실행 결과가 나오는데 늦어질 수 있으므로 유의해야한다.

1-3. Switch문

switch문은 if문과 마찬가지로 조건 제어문이다. witch문은 true인지 false인지 판단하는 것이 아니라 변수 값이 무엇이냐에 따라 실행 여부를 판단한다. 잘 사용한다면 때때로 if~ else if ~else문 보다 효율적으로 사용할 수 있다.
*예시
학점 계산기

 Scanner scanner = new Scanner(System.in);

        System.out.printf("점수 입력 : ");

        int input = scanner.nextInt();

        switch (input/10){
            case 10:
                System.out.printf("%d점은 학점 A입니다.", input);
                break;

            case 9:
                System.out.printf("%d점은 학점 A입니다.", input);
                break;

            case 8:
                System.out.printf("%d점은 학점 B입니다.", input);
                break;

            case 7:
                System.out.printf("%d점은 학점 C입니다.", input);
                break;

            case 6:
                System.out.printf("%d점은 학점 D입니다.", input);
                break;

            default:
                System.out.printf("%d점은 학점 F입니다.", input);
                break;

        }
  • 실행 결과

2. 반복문 for문, while문, do~while문

반복문은 특정 실행문이 반복적으로 실행되도록하는 용도이다. 반복문의 종료는 for문, while문, for문이 있다.

2-1. for문

for문은 개인적인 생각으로 가장 많이 사용되며 보편적인 것 같다. 단순히 반복시키기 위한 구문이며 단순 for문은 사용법도 간단하다.

  • 1부터 100까지 더하기
    *예시
public static void main(String[] args) {
        int sum = 0;
        for ( int i = 1; i<=100; i++){
            sum += i;
        }
        System.out.println(sum);
    }
    
// 출력 결과

5050

조금 복잡한 경우는 이중 for문을 이용한 구구단이 있다.
for문 안에 for문을 사용해서 2단부터 9단까지 출력하는 코드를 작성할 수 있다.
*예시

    public static void main(String[] args) {

        int i = 0;
        int k = 0;

        for (i = 2; i<=9; i++){
            for (k = 1; k<=9; k++){
                System.out.printf("%d X %d = %d\n", i, k,i*k);
            }
        }
    }

2-2. while문

for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true일 경우에 계속해서 반복한다. 조건식에는 비교 연산이나 논리 연산이 주로 사용되며 false일 경우 반복이 중지된다.

  • 사용법
while ( 조건식 ) {
	true일 경우 실행
}

이 처럼 계속 반복되는 특징을 활용해 사용자가 입력하는 값을 계속 더하는 코드도 작성할 수 있게 된다.
*예시

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int sum = 0;

        boolean i = true;
        while (i){
            System.out.printf("숫자를 입력하세요 : ");
            int k = scanner.nextInt();

            sum += k;
            System.out.printf("%d\n", sum);

        }
    }
}
  • 실행결과

2-3. do~while문

do~while문은 조건식에 의해 반복하는 점은 while문과 같다. 하지만 while문은 시작할 때 부터 조건식을 검토하여 실행 여부를 판단하지만 do~while문은 실행문을 먼저 실행한 뒤 반복 여부를 결정할 수 있다.

  • 사용법
do{
	실행문
} while(조건식);

한번 실행한 뒤 반복문을 결정하는 특징을 갖고 있지만 나는 아직 do~while문을 어디에 활용할 수 있는지 잘 모르겠다.

2-4. break문

break문은 앞서 작성한 반복문들을 중지시키고 싶을 때 사용된다.주로 if문과 혼합해서 사용한다.
앞서 작성한 while문의 예시를 가져와서 특정 값에 도달하면 멈추는 코드를 작성해보았다.
*예시

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int sum = 0;

        boolean i = true;
        while (i){
            System.out.printf("숫자를 입력하세요 : ");
            int k = scanner.nextInt();

            sum += k;
            System.out.printf("%d\n", sum);
            if(sum >= 100){
                System.out.println("100보다 크거나 같아서 종료되었습니다.");
                break;
            }

        }
    }

// 출력 결과

개인적을로 잘 사용하면 가장 재미있는 구문이 반복문인 것 같다. do~while문의 예시도 알게되면 추가해야겠다.

profile
자바공부해요흑흑

0개의 댓글