** 여기 있는 모든 코드의 package는 chapter2로 지정했습니다.
코드를 eclipse 등에서 실행하고 싶으면 chapter2로 package를 지정하거나 package chapter2;를 지우세요.
- 변수는 하나의 값을 저장할 수 있는 메모리 공간.
int age;
double value;
int score = 90;
여기서 int와 double는 변수의 타입이며, age와 value는 변수의 이름이다.
변수의 이름은 내 맘대로 정할 수 있으나, 영어 소문자로 시작하는 것이 관례이다.
자바에서 쓰는 예약어는 쓸 수 없다. 그니까, byte, if, class같이 뭔가 컴퓨터스러운 냄새가 나는 단어들은 안 쓰는게 좋다.
변수를 선언 시엔 3번줄과 같이 쓰는데, 변수 score의 초기값을 90으로 저장한다는 뜻이다.
즉, 지금 score의 리터럴(literal)은 90이다.
변수에는
- 소숫점이 없는 정수 리터럴(0, 75, -100)
- 소숫점이 있는 실수 리터럴(0.25, -3.14, 5E7, 0.12E-5)
- 작은 따옴표(single quotes)로 넣어, 한 문자만 있는 문자 리터럴('A', '한', '/n')
- 큰따옴표(double quotes)로 넣어, 여러 문자가 있는 문자열 리터럴("서울", "chaarles")
- true, false만 있는 논리 리터럴
이 있다.
변수값 읽기 예제
//VariableExample.java
package chapter2;
public class VariableExample {
public static void main(String[] args) {
//10을 변수 value의 초기값으로 저장
int value = 10;
//변수 value 값 읽어서 10을 더하는 산술 연산 수행
//이 연산의 결과는 변수 result의 초기값으로 저장
int result = value + 10;
//변수 result 값 읽고 console에 출력
System.out.println(result);
}
}
변수는 선언된 블록 안에서만 사용 가능하다.
package chapter2;
public class VariableScopeExample {
public static void main(String[] args) {
int v1 = 15;
if (v1 > 10) {
int v2 = v1 - 10;
}
// int v3 = v1 + v2 + 5; v2가 if 블록 안에 있으므로 사용 불가
System.out.println(v1);
}
}
데이터 타입은
- 정수 byte, char, short(잘 안씀), int
- 실수 float, double(기본 실수타입, 자주 씀)
- 논리 boolean
이 있다.
정수 타입 (+-등 부호는 있으나 소수점이나 지수가 없는 숫자 literal을 처리 시 사용)
- byte 타입
byte는 -128~127(-2E7~2E7-1)의 범위에서 표현할 수 있다.
//ByteExample.java
package chapter2;
public class ByteExample {
public static void main(String[] args) {
byte var1 = -128;
byte var2 = -30;
byte var3 = 0;
byte var4 = 30;
byte var5 = 127;
// byte var6 = 128; byte 범위를 넘어가므로 Compile Error
System.out.println(var1);
System.out.println(var2);
System.out.println(var3);
System.out.println(var4);
System.out.println(var5);
}
}
최대값 127을 넘어가면 -128로 다시 시작한다. 이런 값을 쓰레기값(Garbage Value)라고 하는데,
이렇게 되면 저장 후에 엉터리 값이 나오므로 각 타입의 범위에 맞게 데이터가 만들어지도록 조심해야 한다.
//GarbageValueExample.java
package chapter2;
public class GarbageValueExample {
public static void main(String[] args) {
byte var1 = 125;
int var2 = 125;
for (int i = 0; i < 5; i++) {
var1++;
var2++;
System.out.println("var1: " + var1 + "\t" + "var2: " + var2);
}
}
}
- char 타입
자바는 모든 문자를 유니코드로 처리한다. 문자를 직접 저장하거나, 유니코드로 지정된 10진수, 16진수로 저장하면 된다.
단 하나의 문자만 저장되며, 여러 문자를 저장하고 싶으면 참조 타입인 String 타입을 이용하면 된다.
//CharExample.java
package chapter2;
public class CharExample {
public static void main(String[] args) {
char c1 = 'A'; // 문자 직접 저장
char c2 = 65; // 유니코드 10진수 불러와 저장
char c3 = '\u0041'; // 유니코드 10진수 불러와 저장, ''꼭 추가해야 함
char c4 = '가'; // 문자 직접 저장
char c5 = 44032; // 유니코드 10진수 불러와 저장
char c6 = '\uac00'; // 유니코드 10진수 불러와 저장, ''꼭 추가해야 함
int uniCode = c1; // 유니코드 얻기
String name = "Chaarles"; // 문자열 저장
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
System.out.println(uniCode);
System.out.println(name);
}
}
- int 타입
정수 연산을 위한 기본 타입
10,000,000,000등과 같이 자릿수가 많은(10개 이상) literal은 long(소수점 없음) 또는 double(소수점 있음)을 써야 한다.
//IntExample.java
package chapter2;
public class IntExample {
public static void main(String[] args) {
int var1 = 10; // 10진수로 저장(기본)
int var2 = 012; // 8진수로 저장(앞에 0을 붙임)
int var3 = 0xA; // 16진수로 저장(앞에 0x를 붙임)
System.out.println(var1);
System.out.println(var2);
System.out.println(var3);
}
}
- long 타입
수치가 큰 프로그램을 다룰 때 주로 사용하는 타입.
java는 정수 literal의 기본 타입을 int로 보고 처리하므로,
int 범위를 초과하는 long 타입을 쓰기 위해선 literal 뒤에 'L'을 붙여서 사용해야 한다.
//LongExample.java
package chapter2;
public class LongExample {
public static void main(String[] args) {
long var1 = 10;
long var2 = 20L;
// long var3 = 10000000000; int 범위를 넘어가면 리터럴 뒤에 L을 꼭 붙여야 하므로 Compile Error
long var4 = 10000000000L;
System.out.println(var1);
System.out.println(var2);
System.out.println(var4);
}
}
실수 타입 (소수점 또는 지수가 있는 숫자 literal을 처리 시 사용)
- float 타입
java는 실수 literal의 기본 타입을 double로 보고 처리하므로, float 타입을 쓰기 위해선 literal 뒤에 'F'를 붙여야 한다.
//FloatDoubleExample.java
package chapter2;
public class FloatDoubleExample {
public static void main(String[] args) {
// 실수값 저장
double var1 = 3.14;
// float var2=3.14; literal 뒤에 'F'없으므로 Compile Error
float var3 = 3.14F;
// 정밀도 테스트
double var4 = 0.1234567890123456789;
float var5 = 0.1234567890123456789F; // float는 일부 자릿수만 저장하고 나머진 생략
System.out.println("var1: " + var1);
System.out.println("var3: " + var3);
System.out.println("var4: " + var4);
System.out.println("var5: " + var5);
// e 사용하기
int var6 = 3000000;
double var7 = 3e6;
float var8 = 3e6F;
double var9 = 2e-3;
System.out.println("var6: " + var6);
System.out.println("var7: " + var7);
System.out.println("var8: " + var8);
System.out.println("var9: " + var9);
}
}
논리 타입 (true false 판단, true=1, false=0)
- boolean 타입
기본값은 false이며, 상태값에 따라 조건문과 제어문 등의 실행 흐름을 변경하는데 주로 이용된다.
//BooleanExample.java
package chapter2;
public class BooleanExample {
public static void main(String[] args) {
boolean stop = true;
if (stop) {
System.out.println("중지합니다.");
} else {
System.out.println("시작합니다.");
}
/*
* boolean 값을 true로 줬고 stop 값이 true면 "중지합니다."를 출력하므로
* Console엔 "중지합니다."가 출력됨.
*/
}
}
'Java > Learn_Java' 카테고리의 다른 글
4. 조건문과 반복문_활용문제 (0) | 2020.03.29 |
---|---|
3. 연산자_연습문제 (0) | 2020.03.29 |
3. 연산자 (0) | 2020.03.28 |
2. 변수와 타입_3. 타입 변환 (0) | 2020.03.28 |
Intro (0) | 2020.03.28 |