ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA - 변수 , 연산자
    JAVA 2023. 12. 14. 21:06
    728x90

    변수

     

    변수 선언

    int a;

    int b; 

    이런 식으로 하나씩 선언도 가능하고, 

     

    int c,d; 

    한 번에 여러 변수도 선언 가능하다.

     

    초기화란?(내가 알던 초기화와는 좀 다른 뜻이어서 처음에 생소한 단어였다..)

     - 선언한 변수에 처음으로 값을 저장하는 것을 말한다.

     

    //1. 변수 선언, 초기화 각각 따로
    int a;
    a
    = 1;

     

    int b = 2; //2. 변수 선언과 초기화를 한 번에

     

    int c = 3, d = 4; //3. 여러 변수 선언과 초기화를 한 번에

     

    초기화하지 않은 변수를 읽으면 

     

     java: variable a might not have been initialized
    

     

    와 같은 오류가 발생하므로 꼭 초기화를 하고 실행을 시키자.

    예외 처리는 예외 처리 부분 때 다뤄보는 걸로.

     

    변수의 타입

     

    `int` : 정수를 다룬다. ) `1` , `100` , `1000`
    `
    double` : 실수를 다룬다. ) `0.2` , `1.5` , `100.121`
    `
    boolean` : 불리언 타입이라 한다. `true` , `false` 값만 사용할 수 있다. 주로 참과 거짓을 판단하는 곳에서 사용한다.
    `char` : 문자 하나를 다룰 때 사용한다. 작은따옴표( `'` )를 사용해서 감싸야한다.. 예) `'A'` , `''` `String` : 문자열을 다룬다. 큰따옴표를 사용해야 한다. ) `"hello java"`

     

    리터럴(단어의 어원은 문자 또는 글자를 의미한다)

    코드에서 개발자가 직접 적은 `100` , `10.5` , `true` , `'A'` , `"Hello Java"` 와 같은 고정된 값을 프로그래밍 용어로 리터럴(literal)이라 한다.

    ```java

    int a = 100; //정수 리터럴

    double b = 10.5; //실수 리터럴

    boolean c = true; //불리언 리터럴

    char d = 'A'; //문자 하나 리터럴

    String e = "Hello Java"; //문자열 리터럴

    변수의 값은 변할 수 있지만 리터럴은 개발자가 직접 입력한 고정된 값이다. 따라서 리터럴 자체는 변하지 않는다.

     

    숫자 타입

     - 정수형

    `byte` : -128 ~ 127 (1byte, 28)
    `short` : -32,768 ~ 32,767 (2byte, 216)
    `int` : -2,147,483,648 ~ 2,147,483,647 (20) (4byte, 232)
    `long` : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (8byte, 264)

     

     - 실수형

    `float` : 대략 -3.4E38 ~ 3.4E38, 7자리 정밀도 (4byte, 232)

    `double` : 대략 -1.7E308 ~ 1.7E308, 15자리 정밀도 (8byte, 264)

     

     - 기타

    `boolean` : `true` , `false` (1byte)
    `char` : 문자 하나(2byte)
    `String` : 문자열을 표현한다. 메모리 사용량은 문자 길이에 따라 동적으로 달라진다. (특별한 타입이다. 세한 내용은 뒤에서 학습한다)

     

    >> 실무에선 보통 int(단위가 크다면 long)와 double, boolean, String을 사용한다고 한다. 나머지는 참고만 하고 넘어가자.

     

    변수명명규칙

     

    규칙

     - 변수 이름은 숫자로 시작할 수 없다. (: `1num` , `1st` )

     - 그러나 숫자를 이름에 포함하는 것은 가능하다 (: `myVar1` , `num1` ).
     - 이름에는 공백이 들어갈 수 없다.
     - 자바의 예약어를 변수 이름으로 사용할 수 없다. (: `int` , `class` , `public` )
     - 변수 이름에는 영문자(`a-z` , `A-Z` ), 숫자(`0-9` ), 달러 기호(`$` ) 또는 밑줄(`_` )만 사용할 수 있다.

     

    관례

    **클래스는 대문자로 시작, 나머지는 소문자로 시작**

    자바에서 클래스 이름의 첫 글자는 대문자로 시작한다. 그리고 나머지는 모두 첫 글자를 소문자로 시작한다. 여기 에 낙타 표기법을 적용하면 된다.. 이렇게 하면 모든 자바 관례를 다 외울 수 있다!
    예시: 클래스는 첫 글자 대문자, 나머지는 모두 첫 글자 소문자로 시작 + 낙타 표기법

    클래스: `Person` , `OrderDetail`

    변수를 포함한 나머지: `firstName` , `userAccount` 여기에 예외가 딱 2개 있다.

    상수는 모두 대문자를 사용하고 언더바로 구분한다. (상수는 뒤에서 학습) ex) `USER_LIMIT`

    패키지는 모두 소문자를 사용한다. (패키지는 뒤에서 학습) ex) `org.spring.boot`

     

    연산자

    산술연산자

    `+` , `-` , `*` , `/`. 와 같이 계산을 수행하는 기호를 연산자라 한다. 자바에는 다음과 같은 다양한 연산자가 있다. 실무에서 주로 다루는 연산자 위주로 알아보자.

     

    연산자 종류

    산술연산자: `+` , `-` , `*` , `/` , `%` (나머지연산자)

    증감(증가 및 감소) 연산자: `++` , `--`

    비교연산자: `==` , `!=` , `>` , `<` , `>=` , `<=`
    논리 연산자: `&&` (AND), `||` (OR), `!` (NOT)

    대입연산자: `=` , `+=` , `-=` , `*=` , `/=` , `%=`
    삼항 연산자: `? :`

     

    문자열 더하기

     

    문자열과 문자열을 더하면 당연히 두 문자열이 같이 나열되지만, 문자열과 숫자를 더해도 같이 나열되서 나온다.

    //문자열과 숫자 더하기 1
    String result3 = "a + b = " + 10; // a + b = 10
    System.out.println(result3);
    
    //문자열과 숫자 더하기 2
    int num = 20;
    String str = "a + b = ";
    String result4 = str + num; // a + b = 20
    System.out.println(result4);

     

    연산자 우선순위

     

    1. **괄호 ()**
    2. **단항 연산자** (: `++` , `--` , `!` , `~` , `new` , `(type)` )
    3. **산술 연산자** (`*` , `/` , `%` 우선,그다음에 `+` , `-` )
    4. **Shift 연산자** ( `<<` , `>>` , `>>>` )
    5. **비교 연산자** ( `<` , `<=` , `>` , `>=` , `instanceof` )
    6. **등식 연산자** (`==` , `!=` )
    7. **비트 연산자** (`&` ,`^` ,`|` )
    8. **논리 연산자** (`&&` , `||` )
    9. **삼항 연산자** (`?:` )
    10. **대입 연산자** (`=` , `+=` , `-=` , `*=` , `/=` , `%=` 등등)

    사실 외워야 할 필요는 없으며, 연산자 우선순위는 딱 2가지만 기억하면 된다.

     

    >> 상식선에서 우선순위를 사용하자.

    >> 애매하면 괄호()를 사용하자.

     

    증감 연산자

     - 증가 및 감소 연산자를 줄여서 증감 연산자라 한다.

     - ++, --로 표현되며 증가시키거나 감소시킨다.

    //증감 연산자
    int a = 0;
    a = a + 1;
    System.out.println("a = " + a);
    
    a = a + 1;
    System.out.println("a = " + a);
    
    ++a; // a = a + 1
    System.out.println("a = " + a);
    
    ++a; // a = a + 1
    System.out.println("a = " + a);
    
    --a;
    System.out.println("a = " + a);

     

     

    전위, 후위 증감 연산자

     - 증감 연산자는 피연산자 앞에 두거나 뒤에 둘 수 있으며, 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다.

     -`++a` : 증감 연산자를 피연산자 앞에 둘 수 있다. 이것을 앞에 있다고 해서 전위(Prefix) 증감 연산자라 한다.

     -`a++` : 증감 연산자를 피연산자 뒤에 둘 수 있다. 이것을 뒤에 있다고 해서 후위(Postfix) 증감 연산자라 한다.

     

    //전위, 후위 증감연산자
    
    int a = 1;
    int b = 0;
    
    b = ++a; // a의 값을 먼저 증가시키고, 그 결과를 b에 대입
    System.out.println("a = " + a + " , b = " + b);
    
    //후위 증감 연산자
    a = 1; // a 값을 다시 1로 지정
    b = 0; // b 값을 다시 0으로 지정
    
    b = a++;
    System.out.println("a = " + a + ", b = " + b);

     

    비교 연산자

    // 비교 연산자
    int a = 2;
    int b = 3;
    
    System.out.println(a == b);
    System.out.println(a != b);
    System.out.println(a > b);
    System.out.println(a >= b);
    
    //결과를 boolean 변수에 담음
    boolean result = a == b;
    System.out.println("result = " + result);

     

    문자열 비교

    // 문자열 비교
    String str1 = "문자열1";
    String str2 = "문자열2";
    
    
    boolean result1 = "hello".equals("hello"); // 리터럴 비교
    boolean result2 = str1.equals("hello"); // 문자열 변수, 리터럴 비교
    boolean result3 = str1.equals(str2); // 문자열 변수 비교
    
    System.out.println(result1);
    System.out.println(result2);
    System.out.println(result3);

     

    논리 연산자

    //논리 연산자
    System.out.println("&&: AND 연산"); System.out.println(true && true); //true
    System.out.println(true && false);//false
    System.out.println(false && false);//false
    
    System.out.println("||: OR 연산");
    System.out.println(true || true); //true
    System.out.println(true || false);//true
    System.out.println(false || false);//false
    
    System.out.println("! 연산"); System.out.println(!true); //false
    System.out.println(!false); //true
    
    System.out.println("변수 활용");
    boolean a = true;
    boolean b = false;
    System.out.println(a && b); // false
    System.out.println(a || b); // true
    System.out.println(!a); // false
    System.out.println(!b); // true

     

    논리 연산자 활용

    //논리 연산자 활용
    int a = 15;
    //a는 10보다 크고 20보다 작다
    boolean result = a > 10 && a < 20; //(a > 10) && (a < 20)
    System.out.println("result = " + result);

     

    대입 연산자

      - 대입 연산자( `=` )는 값을 변수에 할당하는 연산자다. 이 연산자를 사용하면 변수에 값을 할당할 수 있다. 예를들어, `int a = 1` `a` 라는변수에 `1` 이라는 값을 할당한다.

    축약(복합) 대입 연산자

     - 산술 연산자와 대입 연산자를 한번에 축약해서 사용할 수 있는데, 이것을 축약(복합) 대입 연산자라 한다.

     - 연산자 종류: `+=` , `-=` , `*=` , `/=` , `%=`

     

    // 대입 연산자
    int a = 5; //5
    a += 3; //8 ( 5 + 3) : a = a + 3
    a -= 2; //6 ( 8 - 2 ) : a = a - 2
    a *= 4; //24 ( 6 * 4 ) : a = a * 4
    a /= 3; //8 ( 24 / 3 ) : a = a / 3
    a %= 5; //3 ( 8 % 5 ) : a = a % 5
    System.out.println(a);

     

     

    'JAVA' 카테고리의 다른 글

    JAVA - 배열  (0) 2023.12.28
    JAVA - Scanner사용 및 훈련  (1) 2023.12.27
    JAVA - 스코프(Scope), 형변환  (0) 2023.12.18
    JAVA - 반복문  (1) 2023.12.18
    JAVA - 조건문  (0) 2023.12.17
Designed by Tistory.