Java 3일차

소윤정·2021년 5월 24일
0

JAVA

목록 보기
2/15

증감 연산자란?

  • 변수의 값을 1증가 또는 1감소 시키는 연산자를 뜻한다.
    1) ++x : 다른 연산을 수행하기 전에 값을 1증가 시킴
    2) --x : 다른 연산을 수행하기 전에 값을 1감소 시킴
    3) x++ : 다른 연산을 먼저 수행한 후에 값을 1증가 시킴
    4) x-- : 다른 연산을 먼저 수행한 후에 값을 1감소 시킴

대입 연산자란?

  • 값을 변수에 저장시키는 연산자

1) = : 우측의 값을 좌측 변수에 저장

num = 10; // 10의 값을 num에 저장

2) += : 우측의 값을 좌측 변수에 더한 뒤 다시 좌측 변수에 저장

num += 10; // num = num +10과 같다.

3) -= : 우측의 값을 좌측 변수에 뺀 뒤 다시 좌측 변수에 저장
4) *= : 우측의 값을 좌측 변수에 곱한 뒤 다시 좌측 변수에 저장
5) /= : 우측의 값을 좌측 변수에 나눈 뒤 다시 좌측 변수에 저장
6) %= : 우측의 값을 좌측 변수에 나머지 연산을 한 뒤 다시 좌측 변수에 저장

논리 연산자

  • 논리곱(&&), 논리합(||), 배타적 논리합(^), 논리 부정(!) 연산
  • 피연산자는 논리형(boolean)만 사용
    논리 연산자

비트 연산자

  • 데이터를 비트 단위로 연산
  • &(AND), |(OR), ^, << , >> ⇒ 1 true, 0 false

삼항 연산자

  • 세 개의 피연산자가 필요로 하는 연산자
  • 앞의 조건식에 따라 콜론(:) 앞뒤의 피연산자가 선택
  • 조건 연산식

    조건식 ? 값 : 값
    (논리형)? true : false

타입 변환

  • 연산은 기본적으로 같은 타입의 피연산자 간에만 수행
  • 서로 다른 타입의 피연산자가 있을 경우 두 피연산자 중 크기가 큰 타입으로 자동 변환됨.
  1. 자동 타입 변환
    int + double → double
  2. 강제 타입 변환
    int → byte → (byte)변수명

Scanner 클래스

  • 자바에서 여러가지 데이터를 입력 받을 수 있도록 도와주는 대표적인 입력 관련 클래스
    - 기본적인 데이터 타입들을 메소드를 사용하여 입력
    - 공백 또는 줄바꿈을 기준으로 읽음(주의)
  • 사용법
import java.util.Scanner;

public class Scanner1 {
    public static void main(String[] args) {
        // 타입 변수명 = 값; (변수)
        Scanner sc = new Scanner(System.in); // system.in 사용자에게 입력 받아오는.
        int input = sc.nextInt();
        System.out.println("입력 받은 숫자 : " + input);
    }
}

제어문

  • 프로그램의 흐름을 제어하는 문장
  1. 조건문
    1) if문

    		// if문
    if(조건식) {
    	조건식이 true인 경우 실행할 문장;
        ...
    }
    
    // if ~ else문
    if(조건식) { 
    		조건식이 true인 경우 실행할 문장;
    		...
    		} else {
    		조건식이 false인 경우 실행할 문장;
    		...
    		}
    
    // if ~ else if ~ else문
    if(조건식) {
    		조건식1true인 경우 실행할 문장;
    		...
    		} else if(조건식2) {
    		조건식2true인 경우 실행할 문장;
    		...
    		} else if(조건식3) {
    		조건식3true인 경우 실행할 문장;
    		...
    		} else{
    		모든 조건식이 false인 경우 실행할 문장;
    		...
    		}
    

    2) swithch문

  2. 반복문
    1) while문
    2) for문

Math 클래스

  • random() : 임의의 수 0 ~ 1 사이의 소수를 추출
public class Random1 {
    public static void main(String[] args) {
        double random = Math.random();
        System.out.println(random);

        // 0.5288053437497887 * 10 -> 5.288053437497887
        int num1 = (int)(random * 10); // 0 ~ 9
        System.out.println(num1);

        // 1 ~ 45 랜덤 출력
        // 0 ~ 44 -> 1 ~ 45
        int num2 = (int)(random * 45) + 1;
        System.out.println(num2);
    }
}

예제

Q. 혈액형을 입력받아 RH+인지 RH-인지 구별하시오. (if문 사용)

import java.util.Scanner;

public class IfElseif2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("혈액형을 입력하세요.");
        String blood = sc.next();

        System.out.println("RH+와 RH- 중 선택하여.(+,-)");
        String rh = sc.next();

        // equals() : 문자열을 비교하는 메서드. 같으면 true, 다르면 false
        if (blood.equals("A")){
            if(rh.equals("+")){
                System.out.println("RH+ A형입니다.");
            } else if(rh.equals("-")){
                System.out.println("RH- A형입니다.");
            } else {
                System.out.println("+ 또는 -로 입력하세요.");
            }
        } else if(blood.equals("B")){
            if(rh.equals("+")){
                System.out.println("RH+ B형입니다.");
            } else if(rh.equals("-")) {
                System.out.println("RH- B형입니다.");
            } else {
                System.out.println("+ 또는 -로 입력하세요.");
            }
        }else if(blood.equals("O")){
            if(rh.equals("+")){
                System.out.println("RH+ O형입니다.");
            } else if(rh.equals("-")){
                System.out.println("RH- O형입니다.");
            }else {
                System.out.println("+ 또는 -로 입력하세요.");
            }
        }else if(blood.equals("AB")){
            if(rh.equals("+")){
                System.out.println("RH+ AB형입니다.");
            } else if(rh.equals("-")){
                System.out.println("RH- AB형입니다.");
            }else {
                System.out.println("+ 또는 -로 입력하세요.");
            }
        } else{
            System.out.println("혈액형은 A,B,O,AB로 입력해주세요.");
        }
    }
}

배운점

아직까진 그동안 배웠던 부분이라그런지 할만하다,,종종 과제도 내주시는 것과 예제들 보면 나와 다른 코드가 있으면 다양한 방법으로도 풀수 있구나에 대해 깨닫곤 한다. 그런걸보면 더욱 더 열심히 공부해야겠다라는 생각이 든다. math 메소드는 써본적이 없었는데 과제로 주사위 게임을 내주셔서 사용해봤다. 새로운걸 배우는 건 언제나 재밌는 것같다😁😁

중요한 부분

  1. "증감 연산자" 같은 경우는 정보처리기사에도 종종 나오곤 하니까 필수적으로 정확하게 알고 넘어가야한다.
  2. Scanner 클래스를 사용하는 경우 입력 값을 키보드로 입력받아 사용하니 사용방법에 대해 알고 넘어가도록 해야 한다.

0개의 댓글

관련 채용 정보