4일차 java - 변수와 연산자

변수(variable)

  • 임의의 값을 저장하기 위한 메모리상의 임시 저장 장소
  • 변수명 만드는 규칙
    1) 일반적으로 소문자로 작성한다.(두 개 이상의 단어가 있다면 _(언더바)또는 대문자 사용)
    ex) 반 학생 수에 대한 변수 지정 - int classStudent;
    2) 영문자,숫자,_를 사용할 수 있다.
    3) 예약어를 사용할 수 없다(int나 String같은 기능이 있는 단어는 안됨)
    4)특수문자, 공백을 사용할 수 없고, 숫자로 변수명이 시작되면 안된다.

자료형(Data Type)

기본 자료형(primitive Type)

  • 정수형
    byte - 1byte
    short - 2byte
    int - 4byte
    long - byte
  • 실수형
    flaot - 4byte
    double - 8byte
  • 논리형
    boolean - 1byte(true, false)
  • 단일 문자형
    char - 2byte

참조 자료형(Reference Type)

  • 대표적으로 클래스와 배열이 해당된다.
  • java에서 최상위 java.lang.Object 클래스를 상속하는 모든 클래스들을 말하며 메모리 영역인 heap 영역에 생성하고 Garbage collector에 등록되며 버려지게 된다.

대입 연산자

  • 변수는 오직 대입 연산자=를 통해서만 값의 변경이 가능하다
int num = 8;
		
// 문제) num 에 1을 더하기
System.out.println(num + 1); // 결과값 9

// 위 식에서 num 값이 더해진것 처럼 보이지만 실제로 변수 num의 값은 8로 변함없음
System.out.println(num); //결과값 8
System.out.println();

int temp = num;
num = (temp + 1); //대입 연산자를 통해서 값이 변경된다
System.out.println(num); // 결과값 9
System.out.println();
// 연산자 우선순위는 대입연산자보다 산술연산자가 우선 적용된다
int b = 10;
b = b + 1; // ( ) 없이도 b+1이 먼저 적용 된 후 다시 b에 적용된다
System.out.println(b);

비교 연산자

  • 비교 연산자의 결과는 참(true) 또는 거짓(false)이다.
    1) 크니? >
    2) 작니? <
    3) 같니? ==
    4) 다르니? !=
    5) 크거나 같니? >=
    6) 작거나 같니? <=
int a = 10;
int b = 3;

System.out.println(a == b);
System.out.println(a != b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);

논리 연산자

1) 종류

  • &&(and) - 양쪽 모두 참이어야 참
    양쪽 다 만족시켜야 참 값 반환, 한쪽이라도 아닐시 거짓값 반환
  • ||(or) - 양쪽 중 어느 한쪽이라도 참이면 참
    한쪽만 만족시켜도 참 값 반환, 양쪽 다 아닐시 거짓값 반환
  • !(not): 참이면 거짓으로 변환, 거짓이면 참으로 변환

2) 역할

  • 논리 연산자를 통해 여러개의 비교 연산자를 연결할 수 있다.
  • 논리 연산자를 통해 범위 설정이 가능하다.
System.out.println(10 == 10 && 3 == 3);
System.out.println(10 != 10 && 3 == 3);
System.out.println(10 == 10 && 3 != 3);
System.out.println(10 != 10 && 3 != 3);
	  
System.out.println("--------------------");
 
int a = 10, b =3;
// or 연산자 - 양쪽 중 한쪽만 true여도 true값 반환, 둘 다 false면 false 값 반환
System.out.println(a == a || b == b);
System.out.println(a != a || b == b);
System.out.println(a == a || b != b);
System.out.println(a != a || b != b);
	  
System.out.println("--------------------");
// not 연산자 - true값을 false로 변환 / false값을 true 값으로 변환
System.out.println(!true);
System.out.println(!false);

Scanner 클래스

  • 읽은 데이터를 문자, 정수 실수, 불린, 문자열 등 다양한 타입으로 변환하여 리턴하는 클래스
  • Scanner는 입력되는 키 값을 공백으로 구분되는 토큰 단위로 읽는다
  • 공백문자 \t \f \r , \n
  • 개발자가 원하는 타입 값으로 쉽게 읽을 수 있다.
    -프로그램을 실행시키고 콘솔창에 문자열을 입력 후 Enter key 를 입력하면 된다.
import java.util.Scanner
public class Scanner_test{
  public static void main(String[] args
  Scanner scan = new Scanner(System.in);
  int num = scan.nextInt();
  System.out.printf("입력하신 숫자는 %d 입니다.\n",num);
}

System.in
키보드와 연결된 java의 표준 입력 스트림이다.
입력되는 키를 바이트로 리턴하는 저수준 스트림이다.
System.in을 Scanner 클래스 없이 직접 사용하면 바이트를 문자나 숫자로 변환하는 많은 어려움이 있다.

덧. 수업이 많이 하드하다. 기초적인 개념은 네이버 카페에 올라와있고 강의를 보고 하거나 구글링하거나 선생님께 여쭤보는 등 자기주도적 학습으로 주구장창 문제를 풀고 또 풀고 풀고풀고 테스트다.
어려워도 자신의 페이스를 유지해서 끝까지 완주 하는 것을 목표로 삼고 있다.
덧덧. java 패키지나 변수, 클래스명에 한글을 못쓸 줄 알았는데 수업하면서 편견이 깨졌다. 그래도 실무에서는 영어겠지..?

좋은 웹페이지 즐겨찾기