ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12일차 - 연산자, 조건문, 반복문
    AI 솔루션 개발자과정(Java, Python) 2022. 10. 25. 17:15

    자바에서 제공하는 이항 연산자

    우선순위를 먼저 적용 후 결합 방향에 따라 연산한다.

     

     

     

    대입 연산자와 산술 연산자

     

     

    복합 대입 연산자

    복합 대입 연산자는 파이썬과 같다.

    다만, 자바의 연산은 자료형에 따라 다르다.

    만약 정수와 실수를 연산한다면 연산결과는 실수가 되므로 형 변환을 하지 않으면 컴파일 오류가 생긴다.

    하지만 복합 대입 연산자를 사용한 경우, 자동으로 형 변환이 되어 연산되서 형 변환이 필요하지 않다.

     

    복합 대입 연산자는 두개 이상 같이 사용하면 하나만 작동한다.

     

     

    관계 연산자(비교 연산자)

     

     

    논리 연산자

    기능은 파이썬과 같지만, 기호가 다르다.

    and는 &&

    or 는 ||

    not은 !

     

    부호 연산자

    부호 연산자 -는 변수에 저장된 값의 부호를 바꾸어 반환한다.

     

     

     

     

    증가 감소 연산자

    연산자 연산자의 기능 결합 방향 예(num)
    ++(앞에 붙으면 prefix, 뒤는 postfix) 피연산자에 저장된 값을 1 증가 <= ++num = prefix
    --(앞에 붙으면 prefix, 뒤는 postfix) 피연산자에 저장된 값을 1 감소 <= num-- = postfix

    특징 

    • prefix : 선 처리 후 연산
    • postfix : 선 연산 후 처리

     

     

    첫번째 줄은 연산부터 한 뒤 처리를 하기 때문에 5+10이 연산되고 num이라는 변수는 6으로 증가된다.

     

    때문에 두번째 줄은 num이 6인상태로 넘어와서 1을 증가, 7로 연산이 되서 17이 된다.

     

     

     

     

    비트 연산자

    비트 연산자는 논리연산자와 기호는 비슷하다.

    비트 연산자는 말 그대로 비트단위를 연산 하는데, 비트로 변환한 후 각 비트를 대상으로 연산을 진행한다.

    13과 7을 비트 and 연산하면

    0000 1101 = 13

    0000 0111 = 7

    0000 0101 = 1이 겹치는 부분만 추려서 입력한다. 고로 13 & 7 은 5가 된다.

     

    or 연산은 둘중 하나만 1이여도 1로 변환한다.

    xor 연산은 둘 모두 1이나 0이면 0으로 변환한다.

    반전 연산은 모든 비트를 반전킨다. -1은 비트로 1111 1111인데 이를 반전 연산하면 0000 0000이 되서 0이된다.

     

    다음 코드는 5와 3 을 각 비트 연산자로 연산한 것이고, -1을 반전 연산한 결과이다.

     

     

     

     

     

     

     

     

     

    비트 쉬프트 연산자

     

    if 문

    if ~ else 문에 속한 문장이 하나일 경우 중괄호 생략 가능하다.

    하지만 문장이 둘 이상일 경우 무조건 실행되기 때문에 중괄호 생략을 권장하지 않는다.

     

    위 문장은 15세 이하이기때문에 if구문이 출력되어야 하지만 else구문도 같이 출력되었다.

     

    조건 연산자 ( 3항 연산식 )

    조건이 true 라면 항1을 반환하고, false라면 항2를 반환한다.

    조건이 true이기 때문에 "미성년자"를 반환했다.

     

     

    switch문

    switch문은 조건문으로 선택제어문의 성격을 가지고 있다.

    각각의 상황에 따라 케이스를 지정하고, 조건값에 따라 시작점을 정한다.

     

    조건값이 3이기 때문에 case 3부터 출력된다.

     

     

    break로 중간에 종료할 수 있다.

     

     

    else 키워드처럼 default 키워드를 사용하여 그 외의 값을 지정할 수 있다.

     

     

    반복문

    while문

    주어진 조건이 true이면 반복 영역을 조건이 false가 될 때 까지 반복한다. 

    언젠가 조건이 종료되야 하기 때문에 증가연산자와 함께 자주 사용한다.

     

    do ~ while문

    while문과는 다르게 반복 영역을 먼저 실행 후에 반복 조건을 확인한다.

    변수가 5에서 10이 될때까지 반복한다

    변수가 11로 조건을 넘었는데도 무조건 한번은 실행 후 반복 조건을 따진다.

     

     

    for문

    for(a ; b ; c)의 구조를 가지고 있다. 각 요소 사이에 세미콜론으로 구분한다.

    a : 반복의 횟수를 세기 위한 변수

    b : 반복의 조건

    c : 반복의 조건을 무너뜨리기 위한 연산

    i 가 0에서 2가 될때까지 반복 후 3이 되어 종료된다.

     

    break와 continue

    break는 반복을 종료한다.

    break는 반복을 종료할 조건과 함께 쓰여야 한다.

    continue는 조건에 맞을 때 시작 지점으로 넘어간다. 조건에 맞지 않는 것은 넘기지 않는다.

     

    for문의 중첩

    for문 안에 for문을 중첩시켜서  첫 for문의 조건에 성립되면 두번째 for문의 조건을 반복한다.

    경우의 수 구하기 라고 생각하면 편하다.

    1,2,3과 1,2,3의 경우의 수를 구해 보면

    (1,1) (1,2) (1,3)

    (2,1) (2,2) (2,3)

    (3,1) (3,2) (3,3)

    이렇게 나온다. 앞의 1,2,3이 첫 for문이고, 뒤의 1,2,3이 중첩된 for문이라면 1일때 123, 2일때 123, 3일때 123이 출력될것이다.

     

    또한 구구단을 출력할 수 있다.

    i 는 단수를, j는 곱을 표시한다. 

    식을 조금 변형하여 2의 배수인 단(2,4,6,8)에 단의 수만큼만 구구단을 출력하는 코드를 만들 수 있다.

    2단에는 2x2까지만, 4단에는 4x1~4단까지 ~

     

    무한루프

    반복문을 응용하여 탈출 조건이 될 때 까지 무한히 반복하는 문장

     

    for문을 이용하여 반복조건을 정하지않고 무한루프를 시키는것이다.

    while문은 true인동안 무한히 반복하는 특징이 있어서 그대로 쓴다.

    do ~while문은 while문처럼 조건이 true인동안 무한히 반복한다.

     

    반복문의 마지막에 break 또는 반복문을 종료할 조건을 명시해야한다.

     

Designed by Tistory.