부호 연산자

  • 숫자를 나타내는 기초 타입에 사용하며, 피연산자의 부호를 그대로 유지하거나 반전

증감 연산자

  • 증감연산자는 변수의 위치에 따라 의미가 다르다
    ++ : 증가
  • ++x 연산 전 x 값 증가 (전위 증가)
  • \x++ 연산 후 x 값 증가 (후위 증가)
    -- : 감소
  • --x 연산 전 x 값 감소 (전위 감소)
  • \x-- 연산 후 x 값 감소 (후위 감소)

조건 연산자

  • 조건식이 true면 결과값은 연산식1의 값이 되고, false면 연산식2의 값이 된다
    조건식 ? 연산식1 : 연산식2
package sec06;

import java.util.Scanner;

public class Practice2_8 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("전공 이수 학점 : ");
        int m = in.nextInt();

        System.out.print("전공 이수 학점 : ");
        int l = in.nextInt();

        System.out.print("전공 이수 학점 : ");
        int g = in.nextInt();

        boolean b = ((m + l + g) >= 140) && (m >= 70) && ((l >= 30 && g >= 30) || l + g >= 80);

        System.out.println(b ? "졸업가능" : "졸업 불가");

    }
}

제어문

  • 필요성?
    순차적 수행이 비효율적일 수 있으므로

  • 종류

    • 조건문
    • 반복문
    • 분기문

조건문

  • 조건에 따라 실행문을 선택을 할 때 사용

    • 단순 if 문

    • 조건식이 true 일 때만 실행문을 수행

    • 조건식에는 true, false를 산출할 수 있는 연신식 논리값 변수가 올 수 있음.

    • 조건식이 true일 때 수행할 실행문이 하나라면 {}생략 가능

    • if ~ else 문

    • 조건식의 true false에 따라 다른 실행문을 수행할 때 사용

    • 단순 if문의 비효율성을 제거

practice 3_1

package sec06;

import java.util.Scanner;

public class Practice3_1 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("숫자를 입력하세요 : ");
        int number = in.nextInt();

        if (number >= 19)
            System.out.println("성년");

        else
            System.out.println("미성년");
    }
}

Practice 3_2

package sec06;

import java.util.Scanner;

public class Practice3_2 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("5자리 숫자를 입력하세요 : ");
        int number = in.nextInt();
        int even = 0, odd = 0;

        int num_1 = number % 10; // 1의자리
        int num_2 = (number / 10) % 10; // 10의자리
        int num_3 = (number / 100) % 10; // 100의자리
        int num_4 = (number / 1000) % 10; // 1000의자리
        int num_5 = (number / 10000) % 10; // 10000의자리

        if (num_1 % 2 == 0)
            even++;
        else
            odd++;

        if (num_2 % 2 == 0)
            even++;
        else
            odd++;

        if (num_3 % 2 == 0)
            even++;
        else
            odd++;

        if (num_4 % 2 == 0)
            even++;
        else
            odd++;

        if (num_5 % 2 == 0)
            even++;
        else
            odd++;

        System.out.println("    1의자리 : " + num_1);
        System.out.println("   10의자리 : " + num_2);
        System.out.println("  100의자리 : " + num_3);
        System.out.println(" 1000의자리 : " + num_4);
        System.out.println("10000의자리 : " + num_5);
        System.out.println("짝수의 개수 : " + even);
        System.out.println("홀수의 개수 : " + odd);

    }
}

조건문

  • 다중 if 문

    • 조건식이 다양할 때 사용
    • if문 다음에 else if 문을 연속 추가해 각 조건을 차례대로 점검한 후 만족하는 실행문을 수행
  • 중첩 if 문

    • if 문에 다른 if문이 포함되는 것을 중첩 if문이라고 한다.
    • 주의사항 : {}로 if문의 시작과 끝을 명확하게 잘 나누어줘야함

반복문

조건에 따라 같은 처리를 반복

  • while 문

    • 반복할 조건을 알 때 (종이 한장을 다 채울 때까지 반복해 쓰기)
    • 조건식이 true일 동안 본체 실행문을 반복적으로 수행
    • while (false) {} : 얘는 오류가 남 실행이 안돼서
  • for 문

    • 반복 횟수를 알 때 (100번 반복해 쓴다)

Practice 3_2

package sec06;

import java.util.Scanner;

public class Practice3_2 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("5자리 숫자를 입력하세요 : ");
        int number = in.nextInt();
        int even = 0, odd = 0;

        int num_1 = number % 10; // 1의자리
        int num_2 = (number / 10) % 10; // 10의자리
        int num_3 = (number / 100) % 10; // 100의자리
        int num_4 = (number / 1000) % 10; // 1000의자리
        int num_5 = (number / 10000) % 10; // 10000의자리

        if (num_1 % 2 == 0)
            even++;
        else
            odd++;

        if (num_2 % 2 == 0)
            even++;
        else
            odd++;

        if (num_3 % 2 == 0)
            even++;
        else
            odd++;

        if (num_4 % 2 == 0)
            even++;
        else
            odd++;

        if (num_5 % 2 == 0)
            even++;
        else
            odd++;

        System.out.println("    1의자리 : " + num_1);
        System.out.println("   10의자리 : " + num_2);
        System.out.println("  100의자리 : " + num_3);
        System.out.println(" 1000의자리 : " + num_4);
        System.out.println("10000의자리 : " + num_5);
        System.out.println("짝수의 개수 : " + even);
        System.out.println("홀수의 개수 : " + odd);

    }
}

실행 결과

5자리 숫자를 입력하세요 : 12345
    1의자리 : 5
   10의자리 : 4
  100의자리 : 3
 1000의자리 : 2
10000의자리 : 1
짝수의 개수 : 2
홀수의 개수 : 3

Practice 3_3

package sec06;

import java.util.Scanner;

public class Practice3_3 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int row = 2;
        while (row < 10) {
            int column = 1;
            System.out.println(row + "단 출력");
            while (column < 10) {
                System.out.printf("%d * %d = %2d\n", row, column, row * column);
                // System.out.print(row + " * " + column + " = " + row * column); 처음 한 것
                column++;
            }
            System.out.println();
            row++;
        }
    }
}

실행결과

2단출력
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18

3단출력
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27

(중간 생략함 실제로는 4,5,6단 출력 다있음)

9단출력
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81

'TIL > [객체지향 프로그래밍] TIL' 카테고리의 다른 글

TIL (22.04.06)  (0) 2022.04.06
TIL (22.04.01)  (0) 2022.04.01
TIL (22.03.23)  (0) 2022.03.23
TIL (22.03.18)  (0) 2022.03.18
TIL 1 (22.03.11)  (0) 2022.03.11