학원/java 기본 문법
kr.s02.variable 변수/자료형
쿠룽지
2023. 12. 27. 21:32
728x90
반응형
package kr.s02.variable;
public class VariableMain01 {
public static void main(String[] args) {
//변수(Variable)는 값을 저장할 수 있는 메모리의 공간
//여러 차례 반복해서 사용하기 위해 변수를 선언함
//변경될 수 있는 값: 변수 <> 상수: 고정되어 있는 값
//변수 선언
int num; // int=정수
//변수의 초기화
num = 17; // = 대입 /= == 같음
//변수의 값 출력
System.out.println(num);
System.out.println("============");
//변수 선언, 초기화
int number = 20;
System.out.println(number);
//데이터 변경
number = 40;
System.out.println(number);
System.out.println("===========");
/* 주의사항
* 동일한 변수명으로 변수를 선언하면 오류 발생
* int number = 30; 선언 후 초기화할 때 int number=20; 이라고 하는 경우
* 그냥 number=20; 이라고만 해야함. 경고에 duplicate ~ 라고 뜸. 동일한 변수가 있다고.
*/
//동일한 자료형을 사용하기 때문에 두 번째 변수명 앞의 자료형은 생략 가능
int a = 10, b = 20;
int result = a + b; //변수에서 값을 호출해서 연산
// 1. printf로 출력
System.out.printf("result = %d%n", result);
/* java 내 +
+ : 연산 역할을 할 때 / 숫자 + 숫자
+ : 연결 역할을 할 때 / 문자열+문자열, 문자열 + 숫자 -> 문자열과 숫자를 연결하여 새로운 문자열을 만듦 (순서 상관 x)
*/
// 2. println으로 출력
System.out.println("result = " + result);
//주의사항
System.out.println("결과 : " + a + b); // 이렇게 하면 출력> 결과 : 1020 이라고 나옴
/* 위 문장 구현 순서
* (결과 : ) + a, (결과 : a) + b > 결과 : 10 > 결과 : 1020 이 되버림
*/
System.out.println("결과 : " + (a + b)); //라고 하면 정상적으로 결과 : 30 출력됨
//변수 선언
int no;
//변수 선언 후 출력 또는 연산하기 전에 반드시 초기화를 해야 함
//System.out.println(no);
}
}
[출력화면]
17
============
20
40
===========
result = 30
result = 30
결과 : 1020
결과 : 30
자료형
package kr.s02.variable;
public class VariableTypeMain01 {
public static void main(String[] args) {
System.out.println("===논리형===");
//논리형 (true, false)
boolean b = true;
System.out.println("b = " + b);
System.out.println("===문자형===");
//문자형, 크기: 2byte(유니코드 이용, 아스키코드는 1byte(영문+특문만 처리)), 표현 범위: 0 ~ 65,535
//다국어 처리를 위한 유니코드(unicode) 방식 / 유니코드(16진수)= 아스키코드(10진수)+a
char c1 = 'A'; //아스키 코드로 치환하면 65가 나옴.
System.out.println("c1 = " + c1);
char c2 = 65; //A에 해당하는 아스키 코드 값 65를 문자형으로 직접 대입
System.out.println("c2 = " + c2); // 결과가 c2 = A로 나오는 것을 알 수 있음.
char c3 = '\u0041'; //A를 유니코드로 표현한 것
System.out.println("c3 = " + c3);
char c4 = '자';
System.out.println("c4 = " + c4);
char c5 = '\uc790'; //자를 유니코드로 표현
System.out.println("c5 = " + c5);
System.out.println("===정수형===");
//byte, 크기 : 1byte, 표현 범위: -128 ~ 127
byte b1 = 127;
System.out.println("b1 = " + b1); // 범위가 좁아서 연산 시에는 int 사용, 입출력 시에 byte 사용
//short, 크기 : 2byte, 표현 범위 : -32,768 ~ 32,767
short s1 = 32767;
System.out.println("s1 = " + s1);
//int, 크기 : 4byte, 표현범위 : -2,147,483,648 ~ 2,147,483,647
//정수 표현의 기본.
int in1 = 1234567;
System.out.println("in1 = " + in1);
//long, 크기 : 8byte
long lo1 = 1234567; // int로 인식 후 long으로 변환
long lo2 = 1234567L; // literal > L을 붙이면 int로 인식 x 바로 long으로 변환
System.out.println("lo1 = " + lo1);
System.out.println("lo2 = " + lo2); // 출력결과: lo2=1234567 > L은 자료형을 의미하기 때문에 없어짐
System.out.println("===실수===");
//float, 크기 : 4byte
float f1 = 9.2f; // 얘도 double이 기본형이라 long처럼 f넣어주면 됨
System.out.println("f1 = " + f1);
//double, 크기 : 8byte / 실수 표기 기본형. float보다 정밀도가 조금 더 높음 (8byte라서)
double d1 = 9.8;
System.out.println("d1 = " + d1);
System.out.println("===문자열 표시===");
//문자열= 기본 자료형 X 참조 자료형에 포함됨.
String str = "Hello World!"; // 다른 자료형들은 소문자로 시작, 근데 String은 대문자로 시작해야함
System.out.println("s1 = "+ str);
}
}
정수
byte 1byte
short 2byte
int 4byte
long 8byte (L을 붙이면 int가 아닌 long형으로 인식)
실수
float 4byte
double 8byte
------------------------------
논리형 boolean
문자형 char (2byte, 아스키코드는 1byte)
문자열 str
package kr.s02.variable;
public class VariableTypeMain02 {
public static void main(String[] args) {
//확장 특수 출력 문자(escape sequence)
char single = '\'';
System.out.println(single);
String str = "오늘은 \"수요일\" 입니다.";
System.out.println(str);
//문자열에 '를 표시하면 자동으로 일반문자로 변환돼서 \를 치지 않아도 됨.
String str2 = "내일은 '목요일' 입니다.";
System.out.println(str2);
String str3 = "C:\\javawork"; // \는 특수 문자기 때문에 출력하기 위해선 문자열 내에서도 \를 붙여야함
System.out.println(str3);
String str4 = "여기는 서울이고\n저기는 부산입니다."; // %n은 printf 전용 줄바꿈이고 \n은 모든 출력문 다 가능함.
System.out.println(str4);
String str5 = "이름\t나이\t취미\t";
System.out.println(str5);
}
}
[출력화면]
'
오늘은 "수요일" 입니다.
내일은 '목요일' 입니다.
C:\javawork
여기는 서울이고
저기는 부산입니다.
이름 나이 취미
728x90
반응형