럿고의 개발 노트
[프로그래머스] 자바 입문 > Part2. 변수와 계산 본문
[프로그래머스] 자바 입문
Part2. 변수와 계산
1. 변수
변수
-
자바는 강형 언어로써 모든 변수의 타입이 컴파일 시에 결정됨.
-
변수란, 값을 저장할 수 있는 메모리 공간 / 값이 변할 수 있는 수
변수의 선언
-
타입 변수명;
-
명명 규칙
- 변수의 이름을 정할 때 자바 언어에서 정해 놓은 규칙
- Java Code Conventions Naming
- Java Code Conventions
-
식별자(identifier)는 클래스, 메소드, 변수 등 다양한 대상에 대해 이름이 붙여지는 경우 그 이름을 뜻함
식별자 명명 규칙
-
하나 이상의 글자로 이루어져야 함
-
첫 번째 글자는 문자이거나 '$', '_'이어야 함
-
두번째 이후의 글자는 숫자, 문자, '$', '_'이어야 함
-
'$', '_'외 특수문자 사용 불가능
-
길이 제한 없음
-
키워드 사용 불가(if, null, true, false, for 등)
변수 명명 관례
-
첫 번째 문자가 소문자인 명사로 정함
-
여러 단어로 구성된 이름의 경우 두번째 단어부터 첫글자를 대문자로 함
-
'_'를 쓰지 않음
-
규칙은 반드시 지켜야 함, 컴파일 에러가 발생함
-
그러나 관계는 지키지 않아도 컴파일 에러가 발생하지는 않지만, 약속이기 때문에 지켜주는 것이 좋음
변수 사용
- 변수명 = 값;
public class VariableExam {
public static void main(String[] args) {
int count; // 변수타입 변수명;
count = 10; // count변수에 10을 넣은 것
count = 20; // count변수에 20을 넣은 것
// 10과 20중에 무엇이 들어있을까?
System.out.println(count); // 출력값 : 20
//count = 11.1; // 컴파일 에러(int를 담는 변수에 double을 넣음)
double avg = 11.1; // double에 double값을 제대로 넣음
String name = "rutgo"; // 문자열을 넣을수 있는 것
int totalCount; // 변수명을 알아보기 쉽게 나타내야 변수의 의미를 알수 있음
// 변수는 두번째 단어부터 단어를 알아보기 쉽게 하기 위해 대문자로 쓰는게 관례
}
}
2. 상수
상수
-
수식에서 변하지 않는 값
-
상수 선언 : final 상수타입 상수명;
-
상수 사용 : 상수명 = 값;
-
상수 명명 관례
- 대문자로만 구성된 명사로 정함
- 여러 단어로 구성된 이름의 경우 단어 사이에 '_'을 써서 구분
-
상수를 사용해야 하는 경우
- 값이 변하면 위험한 경우
- 값만 봤을때 무엇을 의미하는지 쉽게 파익할 수 없는 값에도 값 자체를 사용하기 보다는 상수를 사용
public class ConstamtExam {
public static void main(String[] args) {
int i; // 변수 선언
i = 10;
i = 5;
final int J; // 상수는 모두 대문자로만 구성(관례)
J = 10;
//J = 5; // 이미 위에서 10을 넣었기 때문에 사용 불가
double circleArea; // 원의 넓이
final double PI = 3.14159; // Pi 값
circleArea = 3 * 3 * 3.14159; // 3.14159가 무엇을 의미하는지 모를수도 있고, 오타가 날 수 있음으로 상수처리해주는게 좋다
circleArea = 3 * 3 * PI;
final int OIL_PRICE = 1390; // 상수는 단어와 단어사이를 언더바로 구분
int totalPrice = 50 * OIL_PRICE;
}
}
3. 기본형 타입
기본형
-
기본형 타입은 가장 기본이 되는 데이터 타입
-
논리형
- 종류 : boolean
- 크기 : 1byte
- 특징 : true / false 중 한 가지 값만 가질 수 있음
-
문자형
- 종류 : char
- 크기 : 2byte
- 특징 : 작은따옴표를 이용하여 한 글자를 표현
-
정수형
- 종류 : byte, short, int, long
- 크기 : 1byte, 2byte, 4byte, 8byte
- 특징 : 기본형이 int형
-
실수
- 종류 : float, double
- 크기 : 4byte, 8byte
-
리터럴
- 컴퓨터 과학 분야에서 리터럴이란, 소스 코드의 고정된 값을 대표하는 용어
- 일종의 값으로 값 자체를 의미함
public class PrimitiveDataTypeExam {
public static void main(String[] args) {
boolean isFun = true; // true, false 둘중에 하나만 사용 가능
System.out.println(isFun);
char c = 'A'; //작은따옴표를 이용해서 문자 하나만 입력 가능
int x = 59; // 정수 표현
long bing = 345434543454L; // int보다 더 큰값을 넣고 싶다면, long을 사용하고 리터럴 뒤에 L(l)를 입력해줘야함
float f = 32.4f; // 실수를 표현하는 타입으로 리터럴 뒤에 f를 붙어줘야 함
double d = 34343432.5; // float보다 더 큰 값을 넣고 싶다면 double 사용
}
}
4. 기본형 타입변환
기본형 타입(형)변환
-
변수 또는 리터럴의 타입을 다른 타입으로 변환하는 것
-
묵시적 형변환 = 암묵적 형변환
- 크기가 작은 타입을 크기가 더 큰 타입으로 변경할때 사용
-
명시적 형변환 = 강제 형변환
- 크기가 더 큰 타입을 작은 타입으로 변경할 때 사용
public class TypeCastingExam {
public static void main(String[] args) {
int x = 50000;
long y = x; // int보다 long이 더 크기 때문에 가능함.(묵시적 형변환)
long x2 = 5;
//int y2= x2; // int가 long보다 더 작기때문에 불가능.(값이 문제가 아니라 용량이 문제)
// 위와 같은 상황에서 넣을수는 있다 아래와 같이
int y2 = (int)x2; // x2를 int형으로 강제형변환을 실시하면 됨
}
}
5. 산술연산자
연산자
-
부호(+, -) / 증감(++, --) / 산술(+, -, *, /, %)
-
x = y + z
- y와 z를 더한 값을 x에 대입
- '='는 대입연산자, '+'은 산술연산자\
- y와 z는 피연산자
- x = y + z는 연산식
-
피 연산자가 1개인 연산자는 단항 연산자
- 부호 연산자와 증감연산자는 단항 연산자
public class OperatorExam {
public static void main(String[] args) {
// 부호 연산자
int i1 = -5;
int i2 = +i1;
int i3 = -i1;
System.out.println(i1); // -5
System.out.println(i2); // -5
System.out.println(i3); // +5
// 증감연산자
int i4 = ++i3; // i3 + 1 => 6, 먼저 1을 더한 다음에 i4에 넣어주는데
System.out.println(i4); // 6
System.out.println(i3); // 6
int i5 = i3++; // 뒤에 있을때는, 넣은 다음에 1을 더함
System.out.println(i5); // 6
System.out.println(i3); // 7
// 산술 연산자
int i = 5;
int j = 2;
System.out.println(i + j); // 더하기 7
System.out.println(i - j); // 빼기 3
System.out.println(i * j); // 곱하기 10
System.out.println(i / j); // 나누기 2, 정수 / 정수이기때문에, 값도 정수가 나옴
System.out.println(i / (double)j); // 정수 / 실수 이기때문에, 실수가 나옴
System.out.println(i % j); // 나머지 1
}
}
6. 비교연산자
비교연산자
-
==, !=, <, >, <=, >=
-
비교연산자의 결과는 boolean
-
단순 대입 연산자
- =
- 오른쪽에 있는 피연산자의 값을 왼쪽 피연산자의 변수에 저장
-
복합 대입 연산자
- +=, -=, *=, /=, %=
- 정해진 연산을 수행한 후에 결과를 대입
public class OperatorExam1 {
public static void main(String[] args) {
int i = 10; // 대입연산자
int j = 10;
System.out.println(i == j); //true(같은지 묻는 비교연산자)
System.out.println(i != j); // false(다른지 묻는 비교연산자)
System.out.println(i < j); // false(i가 j보다 작은지 묻는 비교연산자)
System.out.println(i <= j); // true(i가 j보다 작거나 같은지 묻는 비교연산자)
System.out.println(i > j); // false(i가 j보다 큰지 묻는 비교연산자)
System.out.println(i >= j); // true(i가 j보다 크거나 같은지 묻는 비교연산자)
i += 10; // 복합대입연산자(i = i + 10)
System.out.println(i);
System.out.println(i -=5); // 복합대입연산자(i = i - 5)
}
}
7. 연산자우선순위
연산자 우선순위
-
최우선연산자 : . / [] / ()
-
단항연산자 : ++, --, !, ~, +/-(부정), bit변환> 부호> 증감
-
산술연산자 : *, /, %, +, -, shift < 시프트연산자 (>>, <<, >>>)>)
-
비교연산자 : >, <, >=, <=, ==, !=
-
비트연산자 : &, |, ~
-
논리연산자 : &&, ||, !
-
삼항연산자 : (조건식) ? true : false
-
대입연산자 : =, *=, /=, %=, +=, -=
public class OperatorExam2 {
public static void main(String[] args) {
int a = 5;
int b= 10;
int c = 15;
System.out.println(a - b * c); // 1. b * c = 150 2. a - 150 = -145
System.out.println((a - b) * c); // 1. a - b = -5 2. -5 * 15 = -75
System.out.println(a > 5 && b > 5); // AND연산자, 조건 둘다 맞아야 true로 결과값은 false
// a > 5 = false, b > 5 = true ==> false AND true ==> false
System.out.println(++a - 5); // 1. a + 1 = 6 2. 6 - 5 = -1
System.out.println(a++ - 5); // 1. a - 5 = 1 (a++은 출력 후에 실행)
System.out.println(a); // 7
}
}
※ 출처
'Java Note > [프로그래머스] 자바 입문(동영상 강의)' 카테고리의 다른 글
[프로그래머스] 자바 입문 > Part7. 상속 (0) | 2020.01.27 |
---|---|
[프로그래머스] 자바 입문 > Part5. 클래스와 객체 (0) | 2020.01.23 |
[프로그래머스] 자바 입문 > Part4. 배열 (0) | 2019.12.20 |
[프로그래머스] 자바 입문 > Part3. 제어문 (0) | 2019.12.20 |
[프로그래머스] 자바 입문 > Part1. 자바 시작하기 (0) | 2019.12.19 |