수업노트 - 형변환, 연산자, if, switch, 제어문

sanchez9·2023년 6월 12일
0

JAVA 수업노트

목록 보기
1/16

230516~230612


  • 형변환
    • 같은 자료형끼리의 연산 결과는 같은 자료형
      • int*int = int
      • double*double = double
      • int*double = double
        • double형이 더 크므로 자동 형변환(auto casting)
    • 타입 변환과 자동 타입변환
      • 타입 변환 : 한 타입의 값을 다른 타입의 값으로 변환
      • 자동 타입 변환: 컴파일러에 의해 원래의 타입보다 큰 타입으로 자동 변환
        • double i=10+1.1;
        • 작은형+큰형 → 큰형+큰형
          • ex) int/double → double/double
        • 치환문(=)이나 수식 내에서 타입이 일치하지 않을 때
    • int형 아래(byte가 작을때) 연산 시 자동으로 int형으로 형변환 (short, byte, char, boolean)
      • byte(10)+10
        ㅤㅤㅤbyteㅤㅤㅤㅤㅤㅤ 1ㅤㅤㅤㅤㅤㅤ 2ㅤㅤㅤㅤㅤㅤ 4ㅤㅤㅤㅤㅤㅤ 8ㅤㅤㅤ
        정수형byteshortintlong
        실수형floatdouble
        문자형char
        논리형boolean
    • 강제 형변환(명시적 형변환); 프로그래머가 강제로 함
      • 변환될 자료형 (data)
        int i=10;
        byte b = (byte) i; // 데이터 손실

연산자 (Operator, op)

  • 연산(Operation) : 데이터를 처리하여 결과를 산출하는 것을 연산이라고 한다
    • ex) 5+3
  • 연산자(Operator) : 연산을 하는 기호 (+, -, *, /) 연간의 매개
    • ex) +
  • 피연산자(operand) : 연산의 대상(항)
    • ex) 5, 3
  1. 단항 연산자

    • 증감연산자 ← 반복문(for)과 많이 사용
      // 형식
      for(초기화; 조건식; 증감식){
      				실행문 //조건식이 true면 실행문(명령문) 처리
      } // 조건이 false면
      
      // 예시
      for(int i=0; i<10; i++); {
      				System.out.println(i); //실행문
      }
      • 가능하면 시작점을 0으로 설정하는 것이 좋다. ex) int i=0
    • ++
    • --
      int i=0;
      i++;   // 1증가
       i--;     // 1감소
       i++;   // 선처리 후 증가
       ++i;   // 선증가 후 처리
       i--;     // 선처리 후 감소
       --i;     // 선감소 후 처리
       int i=10;
  2. 이항 연산자

    • 산술 연산자 (수식 계산)
      • 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)
      • 숫자+숫자=숫자
        • ex) 10+10=20
      • 숫자+”문자열”=문자열
        • ex) 10+”10”=”1010”
        • ex) 10+”10”+10=”101010”
        • ex) 10+10+”10”=”2010”
    • 대입 연산자
      • 연산의 결과를 변수에 대입하는 연산자
        • int num=10;
      • Primitive type : 기본자료형 (8가지)
        • int num=10; // 실제 data값을 대입
      • Reference : 참조형 타입 (String, 배열, class, interface)
      • 객체형(object형)
      • 객체참조변수(객체의 주소값을 저장)
      • new: 객체를 생성
      • String str=new String(”문자열”);
        • 객체 접근 연산자
      • str.속성;
      • str.매서드();
    • 복합 대입 연산자 (+=, -=, /=, *=, %=)
      • int num=10;
      • num=num+10;
        • num +=10; // 복합대입연산자 (num=num+10; 과 같은 의미이다)
        • num -=10; // num=num-10
        • num =10; // num=num10
        • num /=10; // num=num/10
        • num %=10; // num=num%10
    • 비교 연산자
      • 왼쪽을 기준으로 두고 오른쪽이 비교
      • 연산의 결과는 true, false로 반환(return)
      • 제어문(조건문)
        • 조건에 맞으면 true, 아니면 false
        • if, switch과 같이 사용하는 경우가 많다.
        • if문
          1. 조건이 한개 일 경우 → 조건이 true가 아니면 구현부가 실행되지 않는다.
            - 조건문 형식 예) if(i>10)

            // 중복아이디 체크
            String id="m111"; // 저장되어 있는 아이디
            Scanner scn=new Scanner(System.in);
            
            System.out.println("아이디를 입력하세요.");
            String userId=scn.next();
            
            // if ~else문 아직 안배워서 if문만 사용.
            // 중점 키워드는 ~not문 -> ! 기호
            if(userId.equals(id)) {
            				System.out.println("중복 아이디 입니다.");
            }
            if(!userId.equals(id)) {
            				System.out.println("사용할 수 있는 아이디 입니다.");
            }
            
            scn.close();
          2. 조건이 두개 일 경우 → if ~else문

            // 로그인 체크
            String id="m111";
            String pw="1111";
            Scanner scn=new Scanner(System.in);
            
            System.out.println("아이디를 입력하세요.");
            String userId=scn.next();
            System.out.println("비밀번호를 입력하세요.");
            String userPw=scn.next();
            
            if(userId.equals(id) && userPw.equals(pw)) {
            				System.out.println("로그인 성공.");
            }else {
            				System.out.println("로그인 실패.");
            }
            
            scn.close();
          3. 조건이 두개 이상일 경우 → if ~else if문

            // 국어점수 등급 분류 (학점계산하는 프로그램 기본 원리)
            		
            int kor=90;
            
            if(kor>=90) {
            				System.out.println("A"); // 실행부1
            }else if(kor>=80) {
            				System.out.println("B"); // 실행부2
            }else if(kor>=70) {
            				System.out.println("C"); // 실행부3
            }else if(kor>=60) {
            				System.out.println("D"); // 실행부4
            }else {
            				System.out.println("F"); // 실행부5
            }
          4. 다중 if문(if문 안의 if문)

            if(아이디){ //조건1
            				if(비밀번호){ //조건2
            								if(조건1 && 조건2){ //조건3
            												“로그인 성공”
            								}else{
            				“아이디가 틀립니다.}
        • 스위치문 (switch)
          //기본형식
          switch(변수(설정값)) {
          case”값1: // 변수(설정값)이 값1이면
          				처리문;
          				break; //switch문을 종료
          case"값2": //변수(설정값)이 값2이면
          				처리문;
          				break; //switch문을 종료
          case"3": 
          				처리문;
          				break; //switch문을 종료
          default: 
          				나머지처리문; //else, 생략가능
          } //switch문 종료
          • 중요 : 세미콜론이 아님!
      • > 큰지?
      • >= 크거나 같은지?
      • < 작은지?
      • <= 작거나 같은지?
      • == 같은지?
      • != 같지 않은지?
      • Primitive type 비교, 단순 주소값 비교
        • 문자열(객체) 값을 비교할 때는 문자열 객체의 값을 비교한다
        • 객체1.equals(”객체2”);를 사용한다.
    • 논리 연산자(&&, ||, ^, !)
      • 결과값이 True, False
      • 조건문과 같이 사용
      • 논리곱(모든 조건이 True일때만 True)
        조건1 &&조건2결과
        truetruetrue
        truefalsefalse
        falsetruefalse
        falsefalsefalse
      • 논리합(하나 이상의 조건이 True이면 True)
        조건1
        truetruetrue
        truefalsetrue
        falsetruetrue
        falsefalsefalse
      • Xor(서로 다르면 true)
        조건3 ^조건2결과
        truetruefalse
        truefalsetrue
        falsetruefalse
        falsefalsetrue
      • ! (부정) → toggle(같은 이벤트를 적용시 반복적으로 반대 효과를 줌 ex) 스위치)
        !truefalse
        !falsefalse;
  3. 삼항 연산자

    • 조건이 2개일 경우 → if ~else
    • ? : 조건식? 조건이 true : 나머지; (1번항 ? 2번항 : 3번항 ;) int result = 10>10?1:0;
    if(10>10) {
    // 1
    } else {
    // 2
    }

***javascript, react, vue ← 프론트에 스크립트 적용 시 많이 사용.

profile
자바를 배우고 있어요

0개의 댓글