Difference between revisions of "컴퓨터프로그래밍및실습 (2022년)/0905"
Jump to navigation
Jump to search
Line 81: | Line 81: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 데이터 타입 (Data Type) == | |||
=== 기본(원시: primitive) 타입 === | |||
<table2 class=wikitable head=top sep=bar align=llll> | |||
값의 종류 | 기본 타입 | 메모리 사용 크기 | 저장되는 값의 범위 | |||
정수 | byte | 1 byte (8 bits) | -2<sup>7</sup> ~ 2<sup>7</sup>-1 (-128 ~ 127) | |||
| char | 2 bytes (16 bits) | 0 ~ 2<sup>16</sup>-1 (\u0000 ~ \uFFFF, 0 ~ 65535) | |||
| short | 2 bytes (16 bits) | -2<sup>15</sup> ~ 2<sup>15</sup>-1 (-32,768 ~ 32,767) | |||
| int | 4 bytes (32 bits) | -2<sup>31</sup> ~ 2<sup>31</sup>-1 (-2,147,483,648 ~ 2,147,483,647) | |||
| long | 8 bytes (64 bits) | -2<sup>63</sup> ~ 2<sup>63</sup>-1 | |||
실수 | float | 4 bytes (32 bits) | (+/-)1.4E-45 ~ (+/-)13.4028235E38 | |||
| double | 8 bytes (64 bits) | (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308 | |||
논리 | boolean | 1 byte (8 bits) | true, false | |||
</table2> | |||
=== 정수 타입 === | |||
* byte, char, short, int, long | |||
* 음수는 2의 보수로 표현함 | |||
==== byte ==== | |||
<table2 head=top sep=bar align=lr> | |||
이진수 | 십진수 | |||
01111111 | 127 | |||
01111110 | 128 | |||
... | ... | |||
00000001 | 1 | |||
00000000 | 0 | |||
11111111 | -1 | |||
11111110 | -2 | |||
... | ... | |||
10000001 | -127 | |||
10000000 | -128 | |||
</table2> | |||
* 예제 코드 | |||
<syntaxhighlight lang="java"> | |||
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; // 컴파일 에러 | |||
System.out.println(var5); | |||
var5++; | |||
System.out.println(var1); // var1은 왜 음수가 되는가? | |||
} | |||
} | |||
</syntaxhighlight> | |||
* 실행 결과 | |||
<syntaxhighlight lang="text"> | |||
127 | |||
-128 | |||
</syntaxhighlight> | |||
==== char ==== | |||
* 예제 코드 | |||
<syntaxhighlight lang="java"> | |||
public class CharExample { | |||
public static void main(String[] args) { | |||
char c1 = 'A'; | |||
char c2 = 65; | |||
char c3 = '\u0041'; // 10진수로 표현하면 65 | |||
char c4 = '가'; | |||
char c5 = 44032; | |||
char c6 = '\uac00'; // 10진수로 표현하면 44032 | |||
int uniCode = c1; | |||
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); | |||
} | |||
} | |||
</syntaxhighlight> | |||
* 실행 결과 | |||
<syntaxhighlight lang="text"> | |||
A | |||
A | |||
A | |||
가 | |||
가 | |||
가 | |||
65 | |||
</syntaxhighlight> | |||
* String과 char | |||
<syntaxhighlight lang="java"> | |||
String name = "홍길동"; | |||
char c1 = ''; // 컴파일 에러 | |||
char c2 = ' '; // 에러가 나지 않음. 스페이스 문자 | |||
String str = ""; // 빈 문자열 | |||
</syntaxhighlight> | |||
==== int ==== | |||
* 10진수로 10인 정수(int)의 경우 4 바이트로 다음과 같이 표현 | |||
<table2 class=wikitable sep=bar align=cccc> | |||
00000000 | 00000000 | 00000000 | 00001010 | |||
1 byte | 1 byte | 1 byte | 1 byte | |||
</table2> | |||
* 예제 코드 (int & long) | |||
<syntaxhighlight lang="java"> | |||
public class IntExample { | |||
public static void main(String[] args) { | |||
int var1 = 10; // 10진수로 저장 | |||
int var2 = 012; // 8진수로 저장 | |||
int var3 = 0xA; // 16진수로 저장 | |||
System.out.println(var1); | |||
System.out.println(var2); | |||
System.out.println(var3); | |||
} | |||
} | |||
</syntaxhighlight> | |||
* 실행 결과 | |||
<syntaxhighlight lang="text"> | |||
10 | |||
10 | |||
10 | |||
</syntaxhighlight> | |||
==== long ==== | |||
* 예제 코드 | |||
<syntaxhighlight lang="java"> | |||
public class LongExample { | |||
public static void main(String[] args) { | |||
long var1 = 10; | |||
long var2 = 20L; | |||
// long var3 = 1_0000_0000_0000; // 컴파일 에러 | |||
long var4 = 1_0000_0000_0000L; | |||
System.out.println(var1); | |||
System.out.println(var2); | |||
System.out.println(var4); | |||
} | |||
} | |||
</syntaxhighlight> | |||
* 실행 결과 | |||
<syntaxhighlight lang="text"> | |||
10 | |||
20 | |||
1000000000000 | |||
</syntaxhighlight> | |||
[[category:컴퓨터프로그래밍및실습]] |
Revision as of 15:43, 18 July 2022
변수
- 변수란 기억 장소(메모리)에 대한 별칭이다.
변수의 선언
int age; // 정수(int) 값을 저장할 수 있는 age 변수 선언
double value; // 실수(double) 값을 저장할 수 있는 value 변수 선언
int x, y, z; // 여러 개를 선언할 수 있음
변수 이름을 붇이는 규칙
- 첫 번째 글자는 문자이거나 $, _ 이어야 하고 숫자로 시작할 수 없다. (필수)
- 영어 대소문자가 구분된다. (필수)
- 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자는 대문자로 한다. (관례) (maxSpeed, firstName, carBodyColor)
- 문자 수(길이)의 제한은 없다.
- 자바 예약어는 사용할 수 없다. (필수)
분류 | 예약어 |
---|---|
기본 데이터 타입 | boolean, byte, char, short, int, long, float, double |
접근 지정자 | private, protected, public |
클래스와 관련된 것 | class, abstract, interface, extends, implements, enum |
객체와 관련된 것 | new, instanceof, this, super, null |
메소드와 관련된 것 | void, return |
제어문과 관련된 것 | if, else, switch, case, default, for, do, while, break, continue |
논리값 | true, false |
예외 처리와 관련된 것 | try, catch, finally, throw, throws |
기타 | transient, volatile, package, import, synchronized, native, final, static, strictfp, assert |
변수의 사용
int score; // 변수 선언
score = 90; // 값 저장
int score = 90; /// 선언과 동시에 값 저장
Literal
- 리터럴(literal) : 소스 코드 내에서 직접 작성된 값
- 정수 리터럴 : 0, 75, -100 (10진수), 02, -04 (8진수), 0x5, 0xA, 0xB3, 0xac08 (16진수)
- 실수 리터럴 : 0.25, -3.14 (10진수), 5E7, 0.12E-5 (0.12×10-5)
- 문자 리터럴 : 'A', '한', '\t', '\tn'
Escape 문자 | 용도 | Unicode |
---|---|---|
\t | 수평 탭 | 0x0009 |
\n | 줄 바꿈 | 0x000A |
\r | 리턴 | 0x000D |
\" | "(큰 따옴표) | 0x0022 |
\ | '(작은 따옴표) | 0x0027 |
\\ | \ | 0x005C |
\u16진수 | 16진수에 해당하는 유니코드 | 0x0000 ~ 0xFFFF |
변수의 초기화
- 초기화하지 않고 사용하면 오류
int value;
int result = value + 10; // value 값을 초기화하지 않아 오류가 남
- 초기화하여 사용한 예
int value = 30;
int result = value + 10;
변수의 사용 범위
- 변수는 블록 범위 내에서 정의, 사용할 수 있음
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 변수를 사용할 수 없기 때문에 컴파일 에러가 생김
}
}
데이터 타입 (Data Type)
기본(원시: primitive) 타입
값의 종류 | 기본 타입 | 메모리 사용 크기 | 저장되는 값의 범위 |
---|---|---|---|
정수 | byte | 1 byte (8 bits) | -27 ~ 27-1 (-128 ~ 127) |
char | 2 bytes (16 bits) | 0 ~ 216-1 (\u0000 ~ \uFFFF, 0 ~ 65535) | |
short | 2 bytes (16 bits) | -215 ~ 215-1 (-32,768 ~ 32,767) | |
int | 4 bytes (32 bits) | -231 ~ 231-1 (-2,147,483,648 ~ 2,147,483,647) | |
long | 8 bytes (64 bits) | -263 ~ 263-1 | |
실수 | float | 4 bytes (32 bits) | (+/-)1.4E-45 ~ (+/-)13.4028235E38 |
double | 8 bytes (64 bits) | (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308 | |
논리 | boolean | 1 byte (8 bits) | true, false |
정수 타입
- byte, char, short, int, long
- 음수는 2의 보수로 표현함
byte
이진수 | 십진수 |
---|---|
01111111 | 127 |
01111110 | 128 |
... | ... |
00000001 | 1 |
00000000 | 0 |
11111111 | -1 |
11111110 | -2 |
... | ... |
10000001 | -127 |
10000000 | -128 |
- 예제 코드
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; // 컴파일 에러
System.out.println(var5);
var5++;
System.out.println(var1); // var1은 왜 음수가 되는가?
}
}
- 실행 결과
127
-128
char
- 예제 코드
public class CharExample {
public static void main(String[] args) {
char c1 = 'A';
char c2 = 65;
char c3 = '\u0041'; // 10진수로 표현하면 65
char c4 = '가';
char c5 = 44032;
char c6 = '\uac00'; // 10진수로 표현하면 44032
int uniCode = c1;
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);
}
}
- 실행 결과
A
A
A
가
가
가
65
- String과 char
String name = "홍길동";
char c1 = ''; // 컴파일 에러
char c2 = ' '; // 에러가 나지 않음. 스페이스 문자
String str = ""; // 빈 문자열
int
- 10진수로 10인 정수(int)의 경우 4 바이트로 다음과 같이 표현
00000000 | 00000000 | 00000000 | 00001010 |
1 byte | 1 byte | 1 byte | 1 byte |
- 예제 코드 (int & long)
public class IntExample {
public static void main(String[] args) {
int var1 = 10; // 10진수로 저장
int var2 = 012; // 8진수로 저장
int var3 = 0xA; // 16진수로 저장
System.out.println(var1);
System.out.println(var2);
System.out.println(var3);
}
}
- 실행 결과
10
10
10
long
- 예제 코드
public class LongExample {
public static void main(String[] args) {
long var1 = 10;
long var2 = 20L;
// long var3 = 1_0000_0000_0000; // 컴파일 에러
long var4 = 1_0000_0000_0000L;
System.out.println(var1);
System.out.println(var2);
System.out.println(var4);
}
}
- 실행 결과
10
20
1000000000000