📌 기타 연산자 앞에서 다루지 않았던 조건 연산자, 대입 연산자를 알아보자. 1. 조건 연산자 조건? A : B public static void main(String args[]) { int a = 10; int b = 20; int c = 10; boolean ab = a==b ? true : false; System.out.println("a와 b의 값은 같다 : "+ab); boolean ac = a==c ? true : false; System.out.println("a와 c의 값은 같다 : "+ac); } ✔ 조건이 참일 때, A 반환 거짓일 때, B 반환. 2. 대입 연산자 ✔ 우항의 값을 좌항에 대입하는 연산자. ✔ 복합 대입 연산자는 산술 연산과 대입을 동시해 수행한다. 복합 대입 연산자..
📌 비교 연산자 피연산자 두 개를 비교하는 데 사용되는 연산자이다. 제어문의 조건식에 사용되며 연산 결과는 오직 true와 false 중 하나이다. 1. 대소 비교 연산자 비교 연산자 설명 > 좌항의 값이 크면 true, 아니면 false 반환 = 좌항의 값이 크거나 같으면 true, 아니면 false 반환 는 1/2배의 연산 수행 ✔ 2진수 기준으로 비트 연산자 > 는 1/2^n배의 연산 수행 public static void main(String args[]) { int num1 = 3;//0000 0011 int num2 = 4;//0000 0100 //0000 0011 //1)+"\n"); } [참고] 자바의 정석
📌 산술 연산자 산술 연산자에는 사칙 연산자와 나머지 연산자가 있다. 몇 가지 주의할 사항이 있는데, 해당 사항을 중심적으로 살펴보자. 1. 사칙 연산자 + - * / ✔ 곱셈과 나눗셈 연산자가 덧셈, 뺄셈 연산자보다 우선순위가 높다 ✔ 피연산자가 정수형인 경우, 0으로 나눌 수 없다. a = 5 / 3 ; // 1 b = 5 % 3 ;// 2 c = 5 / 3.0 ; // 1.666667 ✔ 피연산자가 정수인 경우 나눗셈 연산자는 나머지를 반환하지 않는다. ✔ 몫만 반환하므로 나머지를 알고 싶다면 나머지 연산자를 사용한다. ✔ 피연산자 중 하나라도 실수라면 자동 형 변환(산술 변환)되어 나눗셈 연산의 결과는 실수를 반환한다. 'A' - 'B';//1 'A' + 'B';//131 ✔ 문자도 사칙 연산이 ..
📌 단항 연산자 하나의 피연산자를 가지는 연산자를 뜻한다. 아래의 연산자가 단항 연산자에 속한다. 1. 증감 연산자 x ++ x의 값을 1 증가 y -- y의 값을 1 감소 ✔ 증감 연산자는 피연산자의 값을 1 증가하거나 1 감소시킨다. ✔ 대부분의 연산자는 피연산자의 값을 읽어 연산에 사용할 뿐, 직접 값을 변경하지 않는다. ✔ 하지만 증감연산자와 대입 연산자는 피연산자의 값을 변경한다. 타입 설명 예 전위형 값이 참조되기 전에 증감 j = ++i ; 후위형 값이 참조된 후에 증감 j = i++ ; ✔ 증감 연산자는 피연산자의 앞과 뒤에 모두 사용될 수 있다. ✔ 메서드 호출에 포함되는 경우 전위형과 후위형의 결과가 다르니 주의하자. 2. 부호 연산자 ✔ 부호 연산자는 피연산자의 부호가 반대로 변경한 ..
📌 연산자(Operator) 연산을 수행하는 기호를 말한다. 사칙 연산자뿐만 아니라 다양한 연산자가 존재한다. 1. 연산자와 피 연산자 ✔ 연산자 : 연산을 수행하는 기호 (+, -, *, / 등) ✔ 피연산자 : 연산을 수행하기 위해서는 반드시 연산의 대상이 있어야 하는데, 이를 피연산자로 한다. ✔ 연산자는 피 연산자로 연산을 수행하고, 항상 결과를 반환한다. 2. 식과 대입 연산자 ✔ 연산자와 피 연산자를 조합해 계산하고자 하는 바를 표현한 것이 식. ✔ 그리고 식을 통해 결과를 얻은 것을 '식을 평가한다'라고 한다 ✔ 하나의 식을 평가(계산)한다면 단 하나의 결과를 얻는다. ✔ 적당한 식을 프로그램에 평가하려면 식의 끝에 ';'을 붙여서 문장으로 만들자 x = 5 + 5 ; → y = x * 4 ..
📌 형식화 출력 함수 printf( ) println()과 동일하게 출력을 돕는 함수이나, 출력 형식을 지정할 수 있다는 차이점이 있다. 그리고 println()과 달리 개행이 포함되어 있지 않으므로, 개행을 원하는 경우 지시자를 사용해야 한다. 1. 지시자 지시자 설명 예시 출력 결과 %b boolean 형식으로 출력 System.out.printf( "%b", true); true %d 10진수의 형식으로 출력 System.out.printf( "%d", 10); 10 %o 8진수의 형식으로 출력 System.out.printf( "%o", 10); 12 %x, %X 16진수의 형식으로 출력 System.out.printf( "%x", 10); a %f 부동 소수점 형식으로 출력 System.out...
📌 상수와 리터럴 상수는 변하지 않는 값을 저장하는 공간을 의미하며, 한 번 초기화하면 다른 값으로 변경할 수 없다. 변수와 같은 방법으로 선언하지만, 상수임을 알리기 위해 선언 시 자료형 앞에 final 키워드를 붙이고 상수명을 대문자로 정한다. 상수는 코드의 이해를 돕고, 수정을 쉽게 하기 위해 사용한다. 1. 상수의 선언과 초기화 final 자료형 상수명 = 값; ✔ 상수는 반드시 선언과 동시에 초기화해야한다. ✔ 상수의 이름은 대문자로 하고, 여러 단어로 이루어지는 경우 언더바를 사용하는 것이 암묵적인 약속이다. final int MAX_SCORE = 100; ✔ 상수는 이와 같이 변하지 않는 값을 의미하기 때문에, 기존의 상수는 리터럴이라 부른다. 변수(variable) 값을 저장하기 위한 공간..
📌 자료형 ✔ 값의 종류에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것 1. 기본형과 참조형 ✔ 기본형 : 실제 값을 저장 ✔ 참조형 : 어떤 값이 저장되어 있는 메모리 주소를 값으로 저장 ✔ 자바는 C언어와 달리 참조형 변수 간의 연산을 할 수 없으므로, 실제 연산에 사용되는 것은 모두 기본형 변수. ✔ 앞서 변수를 선언하는 방식은 기본형을 사용한 방식이므로, 참조형 변수의 선언에 대해 살펴보자 클래스이름 변수이름; ✔ 기본형이 아닌 자료형은 모두 참조형이므로, 클래스명 또한 참조형에 속한다. ✔ 즉, 새로운 클래스의 작성은 새로운 참조형을 추가하는 셈이다. 참조형의 초기화는 아래와 같다 Scanner sc = new Scanner(System in); ✔ 자료형이 기본형이 아니므로, 이는 ..
📌 변수 ✔ 변수란 하나의 값을 저장할 수 있는 메모리 공간. 1. 변수의 선언 자료형 변수명; ✔ 자료형 : 변수에 저장될 값이 어떤 자료형인지를 지정 ✔ 변수명 : 변수에 붙인 이름 ✔ 변수를 선언해, 변수 타입에 맞는 크기의 메모리 공간을 할당받고, 이 공간은 변수명을 통해 사용할 수 있다. package ch02; public class ch021 { public static void main(String[] args) { int score; //score라는 이름의 변수 선언 } } ✔ 콤마를 사용해 한 줄에 여러 변수를 선언할 수 있다. package ch02; public class ch021 { public static void main(String[] args) { int math, en..
다음 주면 코칭 스터디가 마무리된다. 코칭 스터디에 참여하느라 기초만 간신히 떼고 손을 놓고 있었던 자바 공부를 다시 시작하고 싶다는 생각을 하고 싶던 차에, 마침 자바의 정석 카페에서 스터디 모집글을 발견했다. 매주 챕터 하나씩 각자 공부 후, 블로그와 깃허브에 정리하고 주말에 모여 함께 피드백한다. 사실 깃허브도 만들어두고 미숙하다는 이유로 계속 미뤄두었는데 이번 스터디를 통해서 깃허브와도 친해지길 기대해본다. 📌 2021. 02. 21 / 1주차 1주차 스터디를 진행했다. 각자 편한 방식을 통해 공부한 내용을 정리하고 공유했다. 다음 주부터는 정해주신 분량의 알고리즘 문제도 풀어서 블로그에 올리기로 했고 매주 후기를 작성해보자고 하셔서 시작 전에 글을 남긴 여기에 매 주 후기를 작성해 보려고 한다...