학원/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
반응형