데이터에는 여러가지 타입이 있고 타입들을 구분하는 이유는 각각의 데이터의 특성에 맞는 처리방식이 있기 때문이다.
숫자의 경우는 +,-,/,* 등 사칙연산말고도 여러가지 수학적인 처리를 할 수 있고.
문자의 경우는 그 문자의 길이는 얼마나 되는지, 문자 안에 있는 내용을 검색한다던지 등의 일을 할 수 있다.
데이터의 타입을 구분해서 작성할 줄 알아야 한다.
왜냐면 컴퓨터는 스스로 숫자열과 문자열을 구분할 수 없기 때문이다.
숫자열 6(Number)와 문자열 6(String)가 있다.
System.out.println(6);
System.out.println("6");
이 코드를 실행시키면 화면에는 6, 6이 출력될 것이다.
아무 문제도 없는 것 같다.
하지만 더하기를 통해 연산을 시켜보자.
System.out.println(6+6);
System.out.println("6"+"6");
어떻게 나올까?
답은 12, 66이다.
왜 이런 결과가 나올까?
숫자열은 사칙연산을 통해서 계산할 수 있지만
문자열은 각각 서로 다른 객체로 인식하여 이런 결과가 발생한다.
이번에는 곱셈을 해보자.
System.out.println(6*6);
System.out.println("6"*"6");
어떻게 나올까?
위의 코드는 36, 아래의 코드는 오류가 발생한다.
문자열은 서로 곱셈을 할 수 없기 때문이다.
문자열은 겉으로 보기에는 숫자로 보여도 A, B라는 서로 다른 문자라는 것을 알 수 있다.
이번에는 길이는 재어보자.
System.out.println("1111".length());
System.out.println (1111.length());
위의 코드는 4, 아래의 코드는 오류가 발생한다.
문자열은 길이를 알려주는 연산이 있지만 숫자열은 그런 연산이 없기때문이다.
public class Datatype{
public static void main(String[] args) {
System.out.println(6); //Number
System.out.println("six"); //String
System.out.println("6"); //String
System.out.println(6+6); //12
System.out.println("6"+"6"); //66
System.out.println(6*6); //36
// System.out.println("6"*"6"); //문자열로 해석해서 오류발생
System.out.println("1111".length()); //4 (length는 문자열의 길이를 의미)
// System.out.println (1111.length()); //숫자는 길이를 알려주는 연산이 없기때문에 오류발생
}
}
짝짝짝