Java

6월 13일 12일자 복습 내용 : 변수 선언, 제어문

최종군 2024. 6. 13. 20:30

[변수]
  * [    형변환    ] : 값의 자료형을 바꾸는 것
    - 왜 형변환이 일어나는가? 
        => 연산은 (같은) 자료형끼리만 가능

    - 형변환 방식
        [1] 자동 형변환 : [    작은    ] 범위의 자료형에서 [    큰    ] 범위의 자료형으로 변환
byte(1) -> short(2) -> int(4) -> long(8) -> float(4) -> double(8)
               char(2) -> int(4)

        [2] 강제 형변환 : [    자동으로 형 변환  ]이 되지 않는 경우 직접 형변환을 수행. [   데이터  ] 손실이 발생할 수 있음
            - 표현법 : (변환할 자료형)값;


 * 메모리 구조 : static/heap/stack
    (1) stack : 메소드를 호출하면 자동생성, 끝나면 자동 소멸. 지역 변수, 매개변수 등
    (2) static : static으로 선언된 변수, 클래스 변수, 메소드
    (3) heap : new 연산자에 의해 동적으로 할당되고 저장되는 공간. 배열, 객체 등 


 * 입출력 메소드
    : 콘솔창 기준으로 화면에 출력 -> 출력 메소드
    : 콘솔창에 입력 -> 입력 메소드
    - 출력 메소드 : printf (포맷) 형식을 작성하여 화멱에 출력/ println / print
// ex) String intro = "안녕하세요";

* 표현법 : Syste.out.print(출력하고자 하는 값);
Syste.out.print(intro);
Syste.out.print("나는 누구에요");
/*
                  출력 결과 : 안녕하세요 나는 누구에요


            */

* 표현법 : System.out.println(출력하고자 하는 값);
System.out.println(intro);
System.out.println("나는 누구에요");
/*
                  출력 결과 :     안녕하세요   \n 나는 누구에요


            */

* 표현법 : System.out.printf("출력하고자 하는 형식(포맷)", 출력하고자 하는 값, 값, ..);
/* * 지시어
   - 문자타입('a', 'b', char) : char %c
   - 문자열타입("abc", "d", String) : String  %s
   - 정수타입(10, 0, [decimal]) : int long  %d %o %x
   - 실수타입(3.14, 0.21, ..) : float double
   - 소수점자리 표시 : %.1f (n은 정수값, 몇번째 자리인지)
*/
// "안녕하세요" 출력 : ("%s",hi )

            // "5 + 3 = 8" 출력 ("%d, + %d = %d", 5,3,8 );

     - 입력 메소드 : (문자열 입력받을 때) Scanner next();m nextLine
(정수형 입력받을 때) Scanner nextInt();
(실수형 입력받을 때) nextDouble();

[준비 과정]

(2) Scanner 생성

// import 구문 사용하지 않는 경우
java.util.Scanner sc = new Scanner(System.in); 
(전체 클래스 명) 
// import 구문 사용하는 경우
Java.util.Scanner;
다른 경로에 있는 프로그램을 사용

------------------------------------------------------------------
[연산자]
: 프로그램이 실행될 때 연산을 도와주는 기호들
- 연산이 수행될때 [ 우선순위    ] 순서로 진행되며, 
  같은 [   우선순위    ]의 연산자는 [     진행 방향/결합 방향   ]에 따라 진행됨 (기본적으로 왼쪽에서 오른쪽으로 진행)
  
[조건문]
- 프로그램의 흐름을 [    조건    ]에 따라 제어하는 문법
- 종류
  [1] [ if    ]문

        * 표현법 if (조건) {
조건식 참일 경우
 } else 여러 개 조건식을 사용 : else if 위 조건식이 거짓이고 조건이 참일 경우 

- 조건문과 유사한 성격의 연산자 : 삼항 연산자 

        * 표현법 : (조건) ? A(true) : B(false) 


// ex1) age 변수의 값이 8보다 작을 경우 "어린이" 출력,
age 변수의 값이 20보다 작을 경우 "청소년" 출력,
  age 변수의 값이 20 이상인 경우 "성인" 출력

 
if(age < 8 ){
System.out.println(어린이")
} else if(age < 20){ 
System.out.println("청소년")
} else if(age >= 20) {
System.out.println("성인")
}



// ex2) num 변수의 값이 짝수인 경우 "짝수" 출력,
짝수가 아닌 경우 "홀수" 출력 ( 짝수 판단 조건 : 값을 2로 나눈 나머지가 0인 경우 )

if (num % 2 == 0) { 
System.out.println("짝수") 
} else {
System.out.println("홀수 ")
}

(num % 2 == 0) ? System.out.println( "짝수") : System.out.println( "짝수");  

 System.out.println((num % 2 == 0) ?  "짝수" : "홀수")