자바기반응용프로그래밍 - 연산자, 조건문

2022. 4. 8. 16:35·Language/JAVA

 

자바 수식 연산자

  • 증감: ++ --
  • 산술: + - * / %
  • 시프트: >> << >>>
  • 비교: > < < = <= == !=
  • 비트: & | ^ ~
  • 논리: && || ^ ~
  • 조건: ? :
  • 대입: = *= /= += -= &= ^= |= <<= >>= >>>=

 

자바 연산자 우선순위

  1. () [] : 괄호 / 대괄호
  2. ! ~ ++ -- : 부정, 증감연산자
  3. * / % : 곱셈 / 나눗셈(몫, 나머지) 연산자
  4. + - : 덧셈 / 뺄셈 연산자
  5. << >> >>> : 비트 단위의 시프트 연산자
  6. < <= > >= : 관계 연산자
  7. == !=
  8. & : 비트 단위의 논리 연산자
  9. ^
  10. |
  11. && : 논리곱 연산자
  12. || : 논리합 연산자
  13. ? : : 조건연산자
  14. = += -= *= /= %= <<= <<= >>= &= ^= ~= : 대입 / 할당 연산자

 

public class OperatorSequence {
	public static void main(String[] args) {
		int b = 19;
		int a = b > 2 || b++ <= 5 ? 3 : 5;
		System.out.println("a=" + a + " b=" + b);
	}
}

// a = 3, b = 19

 

21(b++) <= 5 => false

21 > 2 => true

따라서 논리합 연산자(둘 중 하나라도 true라면 true반환) => true => a = 3

 

비트 논리 연산

  • & : 논리곱(AND), 두 비트 모두 1일 경우에만 1
  • | : 논리합(OR), 두 비트 중 하나라도 1이라면 1
  • ^ : 배타적 논리합(XOR) : 두 비트 중 하나만 1일 경우만 1, 즉 서로 같으면 0, 다르면 1
  • ~ : 논리 부정(NOT) : 0이면 1이고, 1이면 0

 

비트시프트 연산

  • a << b : a의 비트들을 왼쪽으로 b만큼 이동
  • a >> b : a의 비트들을 오른쪽으로 b만큼 이동
  • a >>> b : a의 비트들을 오른쪽으로 b만큼 이동시키되, 빈자리를 0으로 채움
public class BitOperator {

	public static void main(String[] args) {
		short a = (short)0x55ff;
		short b = (short)0x00ff;
        // 16진수 4자리로 변환, 0xffff
		
		System.out.println("[비트 연산 결과]");
		System.out.printf("%04x\\n", (short)(a & b)); // AND
		System.out.printf("%04x\\n", (short)(a | b)); // OR
		System.out.printf("%04x\\n", (short)(a ^ b)); // XOR
		System.out.printf("%04x\\n", (short)(~a)); // NOT
		
		byte c = 20; // 0x14
		byte d = -8; // 0xf8
		
		// 비트 시프트 연산
		System.out.println("[시프트 연산 결과]");
		System.out.println(c <<2); // c를 2비트 왼쪽 시프트
		System.out.println(c >>2); // c를 2비트 오른쪽 시프트. 0 삽입
		System.out.println(d >>2); // d를 2비트 오른쪽 시프트. 1 삽입
		System.out.printf("%x\n", (d >>>2)); // d를 2비트 오른쪽 시프트. 0 삽입
	}
}

 

조건문 if 문 / switch문

if / else if / else

switch문 : 조건식을 case 문의 값과 비교

case의 비교값과 일치하는 것이 없으면 default 문 실행

(1) if 문 / (2) switch 문

 

중첩 if - else 문 

// 점수와 학년을 입력 받아, 4학년일 경우 70점 이상, 나머지의 경우 60점 이상일 경우 합격 메시지를 출력하는 프로그램 작성

import java.util.Scanner;

public class NestedIf {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("정수를 입력하세요요(0~100):");
		int score = scanner.nextInt();
		
		System.out.print("학년을 입력하세요(1~4):");
		int grade = scanner.nextInt();
		
		if(grade == 4) {
			if(score >= 70) {
				System.out.print("합격!");
			}
			else {
				System.out.print("불합격!");
			}
		}
		else {
			if(score >= 60) {
				System.out.print("합격!");
			}
			else {
				System.out.print("불합격!");
			}
		}
	}
}

 

 

저작자표시 (새창열림)

'Language > JAVA' 카테고리의 다른 글

자바기반응용프로그래밍 - main() 메소드로 인자 전달  (0) 2022.04.11
자바기반응용프로그래밍 - 패키지, 접근 지정자, static, final  (0) 2022.04.10
자바기반응용프로그래밍 - 메소드, 레퍼런스, 오버로딩, 가비지 컬렉션  (0) 2022.04.10
자바기반응용프로그래밍 - 객체 지향을 위한 클래스와 객체  (0) 2022.04.09
자바기반응용프로그래밍 - 기본구조, 식별자, 데이터타입, 스캐너  (0) 2022.04.07
'Language/JAVA' 카테고리의 다른 글
  • 자바기반응용프로그래밍 - 패키지, 접근 지정자, static, final
  • 자바기반응용프로그래밍 - 메소드, 레퍼런스, 오버로딩, 가비지 컬렉션
  • 자바기반응용프로그래밍 - 객체 지향을 위한 클래스와 객체
  • 자바기반응용프로그래밍 - 기본구조, 식별자, 데이터타입, 스캐너
abyss-s
abyss-s
프론트엔드 공부합니다.
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (12)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (3)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    그리디
    BFS
    자바기반응용프로그래밍
    백준
    자바스크립트
    BAEKJOON
    C++
    React
    파이썬
    운영체제
    DP
    통계학
    네트워크
    코드트리
    JavaScript
    생활코딩
    OS
    Python
    Java
    github
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
자바기반응용프로그래밍 - 연산자, 조건문
상단으로

티스토리툴바