변수(Variable)란 ? 데이터를 담는 그릇
데이터형 : 데이터의 종류 10, "10", "안녕", 3.14, 'A', true
기본형데이터타입
정수형 : byte, short, int, long
실수형 : float, double
문자형 : char
논리형 : boolean
+ 문자열 : String
변수 선언
//변수를 선언
int num; //메모리 할당
num = 10; //변수 초기화
System.out.println("num: " + num);
//변수 선언, 초기화
int num2 = 100;
System.out.println("num2: " + num2);
변수 종류
지역 변수
지역변수(로컬변수) 특징 2가지
지역변수란 ?
특정 메소드 및 블럭 안에 선언된 변수
int num = 0;
String str ="";
boolean bool = false;
변수는 선언된 위치가 매우 중요하다. => 변수의 사용범위가 결정되기 때문
if(num == 1) {
int a = 10;
}
System.out.println("a : "+ a);
if문안에서 변수를 선언 했기 때문에 error가 발생한다
따라서,
int a = 0;
if(num == 1) {
a = 10;
}
System.out.println("a : "+ a);
위 코드처럼 작성 해야한다.
예시)
String result = "";
if(a2 == b2) {
result = "두 정수의 값이 같다";
//System.out.println("두 정수의 값이 같다");.
}else {
result = "두 정수의 값이 다르다";
//System.out.println("두 정수의 값이 다르다");
}
System.out.println(result);
기본 리터럴
//10(int), "안녕"(String), 3.14(double), 'A'(char), true/false(boolean)
//int, double, char, boolean, String => 각각 선언과 초기화를 출력 해보자
int i = 1;
double d = 3.14;
char c = 'A';
boolean b = true;
String s = "문자열";
//기본형 : 변수 = 실제값, int num = 10;
//레퍼런스형 : 변수 = 주소값, int arr[] = {1,2,3}; arr => 0X1000
int arr[] = {1,2,3};
System.out.println(arr[0] + ", "+arr[1] + ", "+arr[2]);
형변환(Casting)
//byte < short < int < long < float < double
//묵시적 형변환 : 데이터타입 형변환 기준을 통해서 자동으로 형변환
//강제 형변환 : 묵시적 형변환이 불가능한 데이터를 강제로 형변환
//큰데이터변수(double) = 작은데이터변수(int) => 문제없음(묵시적 형변환)
double num3 = 3; //묵시적 형변환 발생
//작은데이터변수(int) = 큰데이터변수(double) => 문제발생(강제 형변환) => 데이터손실
int num4 = (int)3.14;
System.out.println("num4 : "+num4);
//float는 뒤에 f, long은 L을 붙여준다
float num5 = 3.14f;
long num6 = 100L;
//char,String
//int <==> char
char num7 ='A';
System.out.println((int)num7); //아스키코드값
int num8 = 67;
System.out.println((char)num8);
형변환(Casting) - String 클래스
//String클래스를 이용해서 문자열을 처리
String str = new String("abc");
System.out.println(str);
String str2 = "ABC";
System.out.println(str2);
//int <==> String
String num9 = "100"; //String => int 변환 => Integer.parseInt(문자열)
int num10 = Integer.parseInt(num9);
int result = num10 + 100;
System.out.println(result);
String str4 = String.valueOf(result); //int => String 변환
//모든 기본형 데이터형은 String과 연산 후 String으로 변환된다.
String str5 = result + "";
String str6 = 7 + "7" + 7;
System.out.println(str6);
※ 주의사항
Integer.parseInt() 메소드 사용시
정수형 문자열이 아니면 NumberFormatException
이 발생한다.