자바(Java)

[Java 문법 종합반] 기초언어 2주차 (2-10)

JAVABOZA 2023. 5. 23. 20:33

연산자

● 연산자 : 덧셈, 뺼셈 처럼 계산할 기호 

● 피연산자 : 연산자로 인해 계산되는 숫자

 

연산자의 종류

논리연산자

 

결과값으로 받을 수 있는 boolean 값을 연결하는 연산자이다.

● && (AND = 피연산자 모두 참)

 || (OR = 피연산자 둘중 하나라도 참)

 ! (피연산자의 반대 boolean 값)

 

대입연산자

 

 

변수를 바로 연산해서 그 자리에서 저장하는 연산자

기본연산자 인 ' = '

복합연산자인  ' +=, -=, *=... '

 

ex _) += 1 은 ++ 이랑 동일

         -= 1은 --이랑 동일

더보기

★ 주의

++{피연산자}  --> 연산 전에 피연산자에 1 더해준다

{피연산자}++  --> 연산 후에 피연산사에 1 더해준다.

 

-- 도 이와 동일

 

그 외에 기타 연산자

● 형변환 연산자

● 삼항연산자

● instance of 연산자

 

 

삼항연산자

ex)

int x = 1;
int y = 2;

boolean z = ( x < y) ? true : false;

위의 코드에서 보면 괄호()안에 있는 조건식이 참이면 true를, 틀리면 false를 출력한다.

 


 

연산자 우선순위

연산자 우선순위 : 산술 > 비교 > 논리 > 대입

 

※단 괄호로 감싸준 것 부터 연산의 최우선!!

 

 

 

 

 


조건문

if문

 

        int number = 0;
        if (number == 1) {
            System.out.println("number값은 1입니다.");
        } else if (number == 2) {
            System.out.println("number값은 2입니다.");
        } else {
            System.out.println("number값은 모르는 값입니다.");
        }

: if 의 괄호 안에 조건이 참이면 중괄호{} 안의 연산을 수행

  참이지 않으면 else if 가 있으면 else if 실행 없으면 else를 실행한다.

 

 

중첩 if 문 

boolean flag = true;
        int number = 2;

        if (flag) {
            if (number == 1) {
                System.out.println("flag값은 true이고 number 값은 1입니다.");
            } else if (number == 2) {
                System.out.println("flag값은 true이고 number 값은 2입니다.");
            } else {
                System.out.println("flag값은 true이고 number 값은 모릅니다.");
            }
        } else{
            if (number == 1) {
                System.out.println("flag값은 false이고 number 값은 1입니다.");
            } else if (number == 2) {
                System.out.println("flag값은 false이고 number 값은 2입니다.");
            } else {
                System.out.println("flag값은 false이고 number 값은 모릅니다.");
            }
        }

말그대로 if문 안에 if 문이 중첩으로 있다고 생각하면 된다.

위의 코드에서 flag값이 참이면 해당 중괄호의 코드를 타고내려가 if 조건문을 만난다. 위에서 선언한 int number = 2가 있으므로 else if 조건식을 만나 실행을 한다.

 

중첩 if문 의 활용의 사례

-가위바위보 코드-

Scanner sc = new Scanner(System.in);

        // A에게 값 입력 받기
        System.out.println("A 입력 : ");
        String aHand = sc.nextLine();

        // B에게 값 입력 받기
        System.out.println("B 입력 : ");
        String bHand = sc.nextLine();

        // 두 개의 값을 비교하는 메서드 -> Objects.equals(좌, 우) : 좌 우가 같은 경우 true, 다른 경우 false
        if (Objects.equals(aHand,"가위")) {
            if (Objects.equals(bHand,"가위")) {
                System.out.println("A와 B는 비겼습니다.");
            } else if (Objects.equals(bHand,"바위")) {
                System.out.println("B가 이겼습니다.");
            } else if(Objects.equals(bHand,"보")) {
                System.out.println("A가 이겼습니다.");
            }
        }else if (Objects.equals(aHand,"바위")){
            if (Objects.equals(bHand,"가위")) {
                System.out.println("A가 이겼습니다.");
            } else if (Objects.equals(bHand,"바위")) {
                System.out.println("A와 B는 비겼습니다.");
            } else if(Objects.equals(bHand,"보")) {
                System.out.println("B가 이겼습니다.");
            }
        }else if(Objects.equals(aHand,"보")){
            if (Objects.equals(bHand,"가위")) {
                System.out.println("B가 이겼습니다.");
            } else if (Objects.equals(bHand,"바위")) {
                System.out.println("A가 이겼습니다.");
            } else if(Objects.equals(bHand,"보")) {
                System.out.println("A와 B는 비겼습니다.");
            }
        }else{
            System.out.println( "이상한 값을 입력하셨습니다.");
        }

 

switch / case 문

switch가 case 조건을 만족하면 case: 에 명시된 연산을 수행한다.

case(조건): 은 여러개로 설정이 가능하다.

 

더보기

※ case의 연산문 마지막에는 반드시 break; 를 넣어줘야 한다.

 

switch 문 중괄호 {} 안에는 마지막에 default: () 을 명시해서 case 조건들이 만족하지 않을때 수행한다.

: else 와 비슷

 

switch (month){
            // case ~~~ 연산
            case 1:
                monthString = "1월";
                break;
            case 2:
                monthString = "2월";
                break;
            case 3:
                monthString = "3월";
                break;
            case 4:
                monthString = "4월";
                break;
            case 5:
                monthString = "5월";
                break;
            case 6:
                monthString = "6월";
                break;
            case 7:
                monthString = "7월";
                break;
            case 8:
                monthString = "8월";
                break;
            case 9:
                monthString = "9월";
                break;
            case 10:
                monthString = "10월";
                break;
            case 11:
                monthString = "11월";
                break;
            case 12:
                monthString = "12월";
                break;
            default:
                monthString = "알수없음";
        }

 

 


if문과 switch 문의 차이점

- if문은 괄호안에 조건을 어러개 지정할 수 있다.

- switch 문은 피연산자 한개에 대한 조건만 지원한다.


반복문

for문

for (int i=0; i<10; i++){
}

형태를 반드시 기억하고 기억하고 기억하고 기억하자\

 = for (초기값; 조건문; 증가연산) { (연산) }

 

 

while문 

  - 조건문을 만족해서 연산 반복수행

 

int number = 0;
        //~하는동안
        while (number < 3){    // number < 3인 동안~~
            number++; // 1
            System.out.println(number + "출력!");
        }

do - while 문

int number = 4;
        do {
            System.out.println(number + "출력");
        }while (number <3);

 

 

brak;

==> 반복문 안에서 사용되며 가장 가까은 블록의 for문 or while 문을 중단함

 

continue;

 ==> for문 or while 문에서 해당순서를 패스하고 싶을때 사용