#002. Java 기본 다루기...
1. studypack 패키지에 basic 이라는 class를 만들어서 테스트한다. (만드는 방법은 #001 를 참고)
이제부터는 코딩 연습이기 때문에 이미지보다는 텍스트 위주로 내용을 채우겠다.
#001를 참고해서 class를 만든다면, 아래와 같은 화면이 될 것이다.
주석이 있는 부분에다가 코드를 넣어 실행하고, 지우고 다시 테스트 하는 방법으로 하겠다.
실행하는 방법은 상단에 플레이 버튼을 누르면, 하단의 결과창에 보이게 된다.
2. 간단하게 변수에 값을 넣고 출력을 한다.
테스트코드 | int i = 81; System.out.println("int i 의 값: " + i); char c = 'A'; System.out.println("char c 의 값: " + c); double d = 3.72; System.out.println("double d 의 값: " + d); int id = (int)3.72; System.out.println("int id 의 값: " + id); boolean b = false; System.out.println("boolean b 의 값: " + b); |
실행 결과 | int i 의 값: 81 char c 의 값: A double d 의 값: 3.72 int id 의 값: 3 boolean b 의 값: false |
설 명 | = 표시는 좌항변수에 우항의 값을 보관하라는 표시입니다. 아래 구문을 보면, i 에 81 을 보관하라는 구문입니다. ex) int i = 81;
+ 표시는 +기준으로 좌측값과 우측값을 더하라는 표시입니다. (상수일 때는 덧셈을 문자열일 때는 문자를 붙여줍니다.) 아래의 구문을 보면, System.out.println 은 화면에 출력을 하라는 함수이며, ( ) 안에 값을 출력하라는 구문입니다. ex) System.out.println("int i 의 값: " + i);
앞 강좌의 자료형을 보면 *int *double 이렇게 * 표시된 내용이 있습니다. *표시는 기본 자료형 입니다. 81 를 입력하면 정수형이기 때문에 int (4byte)로 기본으로 인식을 합니다. 3.72 를 입력하면 실수형이기 때문에 double (8byte)로 기본으로 인식을 합니다. 좌항변수 정수(int형 4byte)이고, 우항변수 3.72는 실수(double형 8byte) 이며, 좌항변수에 우항을 넣지 못하기때문에 실수형 변수중 정수부분만 잘라서 정수 id 에 넣어줍니다. 그때 실수형 변수를 정수형으로 변환해주는 것을 형변환 이라고 합니다. ex) int id = (int)3.72; |
3. char .. 기본형 테스트 계속하기..
테스트코드 | char c0 = 'A'; char c1 = '\u0041'; char c2 = 65; System.out.println("c0 의 값 : " + c0); System.out.println("c1 의 값 : " + c1); System.out.println("c2 의 값 : " + c2); |
실행 결과 | c0 의 값 : A c1 의 값 : A c2 의 값 : A |
설 명 | char 형은 2byte가 기본형이다. 이유는 unicode 타입으로 저장하기 때문이다. 문장1: char 형의 기본 데이터 보관 방식이다. 문장2: unicode 로 값을 넣어도 자동으로 문자로 변하는 것을 볼 수 있다. 문장3: 숫자를 입력해도 ascii 코드 값 기준으로 문자가 들어가는 것을 볼 수 있다. |
4. int, long .. 기본형 테스트 계속하기..
테스트코드 | int i1 = 3; int i2 = (int)3.14; long l = 1234567890123l; System.out.println(1/i1); System.out.println(i2); System.out.println(l); |
실행 결과 | 0 3 1234567890123 |
설 명 | 문장1: int 형의 기본 데이터 보관 방식이다. 문장2: 1234567890123은 정수형이 계산할 수 있는 수보다 더 크다. 그런데 long 변수에 넣을 수 없는 이유는 정수기본형이 int이기 때문에 이정수는 long type 이라고 정수 숫자 뒤에 l(소문자L)을 표시해준다. 그렇지 않으면 오류가 발생된다. 문장3: int 형 변수에 실수데이터 3.14를 넣으려면, (int) 라는 형 변환 연산자를 입력해줘야만 정수부분만 보관이 된다. 4byte에 8byte를 넣지 못하기 때문에 8byte중 정수부분인 앞쪽 4byte를 넣어주는 것이다. 문장4: 1/i 의 결과는 1/3 둘 다 정수기 때문에 결과도 정수부분 0만 나온다. |
5. float, double .. 기본형 테스트 계속하기..
테스트코드 | double d1 = 3.3; double d2 = 3; float f = 3.14f; System.out.println(1/d1); System.out.println(d2); System.out.println(f); |
실행 결과 | 0.30303030303030304 3.0 3.14 |
설 명 | 문장1: 1/3.3 의 결과는 정수/실수 둘 중에 자료형이 큰 쪽으로 형 변환이 되어서 계산이 된다. 즉 1.0/3.3 로 계산이 됨으로 결과는 0.3030... 이 나오게 된다. 문장2: 정수3을 대입해도 자동으로 형 변환이 이뤄져 3.0 으로 들어가는 것을 확인할 수 있다. 문장3: 3.14도 실수 형 기본이 double 이기 때문에 실수숫자가 float형임을 표시하지 않으면 오류가 발생된다. |
6. 기본연산자(사칙연산) 테스트해보기... ( + , - , * , / , % )
테스트코드 | int i = 7 ; int j = 3 ; System.out.println("i 를 j로 더한 값 : "+ (i+j)); System.out.println("i 를 j로 뺀 값 : "+ (i-j)); System.out.println("i 를 j로 곱한 값 : "+ (i*j)); System.out.println("i 를 j로 나눈 몫 : "+ (i/j)); System.out.println("i 를 j로 나눈 나머지 : "+ (i%j)); |
실행 결과 | i 를 j로 더한 값 : 10 i 를 j로 뺀 값 : 4 i 를 j로 곱한 값 : 21 i 를 j로 나눈 몫 : 2 i 를 j로 나눈 나머지 : 1 |
설 명 | 결과 자체가 설명이 된다.^^ |
7. 대입연산자 테스트해보기... ( = , += , -= , *= , /= )
테스트코드 | int i = 1; System.out.println("i = 1 후 i의 값 : " + i); i += 3; System.out.println("i += 3 후 i의 값 : " + i); |
실행 결과 | i = 1 후 i의 값 : 1 i += 3 후 i의 값: 4 |
설 명 | 문장1: 정수형 i변수에 1이란 값을 보관하라는 구문이다. 문장3: i+=3 은 풀어서 i=i+3 과 같은 의미다. 기존 i에 1이 들어 있었으므로. i=1+3 이 된다. |
8. 단항연산자(증감연산자) 테스트해보기... ( ++ , -- )
테스트코드 | int i = 1; System.out.println("i = 1 후 i의 값 : " + i); i++; System.out.println("i++ 후 i의 값 : " + i); |
실행 결과 | i = 1 후 i의 값 : 1 i++ 후 i의 값 : 2 |
설 명 | 문장3: i++ 은 풀어서 i+=1 관 같은 의미다. 즉 i=i+1 과 같은 의미이다. 기존 i에 1이 들어 있었으므로 i=1+1 이 된다. |
9. 제어문 테스트하기... ( if , switch )
9-1) if ( ) : 가로 안에 내용은 다른 프로그램(c++, c#, vb....)과 다르게 true, false가 될 수 있는 식 또는 값만 들어갈 수 있다.
테스트코드 | int i = 3, j = 4; if ( i > j ) { System.out.println("i 가 j 보다 크다. "); } else if ( i == j ) { System.out.println("i 가 j 같다. "); } else { System.out.println("i 가 j 보다 작다. "); } |
실행 결과 | i 가 j 보다 작다. |
설 명 | 문장1: 저렇게 두 개의 변수를 같이 선언을 할 수가 있다. 문장2: 첫 번째 조건을 비교 후 맞으면, 문장3이 실행된다. 문장4: 문장2가 틀렸다면, 문장4의 조건으로 비교 후 맞으면 문장5가 실행된다. 문장6: 위 조건에 맞는게 없다면, 문장7이 실행된다. 그러므로 결과는 문장7이 되겠다. |
9-2) switch ( ) : 가로 안에 내용은 정수, 문자가 들어갈 수 있다.
테스트코드 | char c = 'C'; switch (c) { case 'A': System.out.print('A'); case 'B': System.out.print('B'); case 'C': System.out.print('C'); case 'D': System.out.print('D'); break; case 'E': System.out.print('E'); break; default: System.out.print('Z'); } |
실행 결과 | CD |
설 명 | 문장1: c 변수에 C 문자를 보관한다. 문장2: c 변수의 값을 위에서부터 아래로 찾는다. 문장5가 같으므로 문장5를 실행 후, break; 를 만날 때까지 아래로 실행을 한다. 문장6을 실행 후, break; 를 만나 밖으로 나온다. 그러므로 결과는 CD 가 출력된다. 문장8: 위에 만족하는 조건을 못 찾았을 경우 문장8이 실행된다. |
10. 반복문 테스트하기... ( for , while )
10-1) 같은 문장을 반복해서 사용할 때 for 문을 사용한다.
테스트코드 | int i=0; for( i=0; i<3; i++ ){ System.out.println("i의 값: " + i); } System.out.println("i의 값: " + i); |
실행 결과 | i의 값: 0 i의 값: 1 i의 값: 2 i의 값: 3 |
설 명 | 문법: for ( 초기식 ; 조건식 ; 증감식 ) { 수행문; } 문장2: i변수에 0을 넣고, 3보다 작은 동안, 한번 수행시 i를 1씩 증가한다. i가 3보다 작지 않다면, 더 이상 진행하지 않고 밖으로 나온다. 자세한 설명: for 를 만나면 반복한다. 초기값은 i 라는 변수에 0을 넣고, i<3 에 비교를 한다. 조건에 만족한다면 아래문장을 수행하고, i++로 가서 i에 1을 증가한다. 그 후, 다시 조건식 i<3 에 비교를 한다. 만족한다면 계속 반복하고, 다르다면 밖으로 나온다. 마지막 상태에서 i는 증가를 하고 나오기 때문에 3이 될 것이다. |
10-2) 같은 문장을 반복해서 사용할 때 while 문을 사용한다.
테스트코드 | int i = 0; while (i<3){ System.out.println("i의 값: " + i); i++; } System.out.println("i의 값: " + i); |
실행 결과 | i의 값: 0 i의 값: 1 i의 값: 2 i의 값: 3 |
설 명 | 문법: while ( 조건식 ) { 수행문; } 문장2: 조건식 i<3 에 비교를 하고, 만족한다면 안으로 들어간다. 수행 문을 실행하고 다시 올라가서 조건을 비교한다. 만족하지 않으면 밖으로 나온다. 주의: 문장4번이 빠지게 된다면 i<3 은 죽을 때까지 조건이 만족하므로 무한반복이 될 것이다. |
지금까지는 다른 언어와 의미는 같으나, 사용법이 달라서 설명을 했습니다. 다음시간 부터는 객체에 대해서 알아보겠습니다..
잡담: 블로그 포스팅 하는게 이렇게 힘든지 몰랐네요.. 2시간 동안 작성했네요.. 휴=33
'Developer > Java-oop' 카테고리의 다른 글
#004. Member변수(instance변수) 와 static변수(class변수) 알아보기... (0) | 2011.03.19 |
---|---|
#003. Class 와 Instance... (0) | 2011.03.18 |
#001. Eclipse java project / package / class 만들기... (0) | 2011.03.17 |
Java 의 규칙... (0) | 2011.03.17 |
Java 예약어 종류... (0) | 2011.03.17 |