1. 데이터형 변환
- 데이터형 변환에는 두가지 종류가 존재한다. 첫 번째는 "자동형변환" (묵시적 형변환) 이고
두번째는 "강제 형변환" (casting)이 있다.
그렇다면, 이 두 개가 어떠한 것인지 살펴보도록 하자. 자동 형변환이란, 데이터타입의 크기가 작은 것에서 크기가 큰 쪽으로 자동적으로 형변환이 발생하는 것을 의미한다. 반면 , 강제 형변환이란, 데이터타입의 크기가 큰 것을 작은 것으로 강제적으로 형변환 시키는 것을 말한다. 이는 다음과 같은 방법으로 이루어진다.
double db3 = 123.98765 ;
int in3 = (int) db3 ; System.out.println( " in3 => " + in3 )
- 위와 같은 방식으로 코드를 입력하고 , 실행한다면 다음과 같이 값이 나온다. " in3 => 123 " 실수 였던 db3 가 정수(int)로 강제형변환되면서 소수부를 잘라버리는 절삭의 효과를 가지게 된다.
2. 연산자
-연산자의 종류는 아주 다양하기에, 어떤 것이 존재하는 지 살펴보고 그중에 중요하고, 자주 사용 되는 연산자들에 대해서 더 자세히 설명해보도록 하겠다. 그렇다면, 연산자란 무엇인가? 연산자는 주어진 식을 계산하여 결과를 얻어내는 과정을 연산이라고 하는데, 이를 수행하기 위해 쓰여지는 기호를 연산자라고 한다. 연산자로는 어떠한 것들이 있는 지 한 번 살펴보도록 하자.
1. 산술연산자 2. 증감연산자 3. bit별 not 연산자 4. 논리 부정 연산자 5. bit 연산자 6. 논리 연산자 7. 비교 연산자 8. 할당 연산자 9. 삼항 연산자
다음과 같이, 연산자는 여러 종류가 존재한다. 그러나 , 우리가 이러한 연산자를 모두 자주 사용하는 것은 아니다. 그렇다면, 자주 사용하고 중요한 연산자로는 무엇이 있고, 그러한 연산자가 어떠한 것인지 알아보도록 하자. 우선, 증감연산자에 대해 알아보도록 하겠다.
2-1) 증감 연산자는 후위증감 연산자 (표기 : a++ ; , b--; ) 와 전위증감 연산자 (표기 : ++a ; , --b; ) 로 나눌 수 있다. 이 둘에 대해서 간략히 설명드리자면 다음과 같다. 후위증감 연산자는 다른 연산을 마친 이후에 1씩 증감한다. 그리고, 전위증감 연산자는 맨먼저 1씩 증감을 마친 이후에 다른 연산을 한다.
2-2) 논리 연산자
비교 대상이 정수일때는 "bit 연산자" 이지만, 비교 대상값이 "boolean" 타입에서 사용되는 것이 바로 "논리 연산자 " 이다. 논리 연산자의 종류로는 ( & , | , && , || ) 가 존재한다. (&, &&) 는 논리에서 'AND' 를 의미하고, (| , || ) 는 논리에서 ' OR '을 의미한다. 논리 연산자에서 중요한 것은 기호가 하나 있는 것과 두 개가 있는 것의 차이를 제대로 파악하는 것이다. ( && , || ) 는 전체의 결과를 알 수 있으면 거기서 더 연산이 되지 않고 , 스킵하고 바로 결과로 지나간다. 반면에 , ( & , | ) 는 전체의 결과를 알 수 있더라도, 연산을 스킵하지 않고, 전체적으로 연산을 끝까지 한다.
- 이에 대하여, 수업 동안에 퀴즈를 풀었었는데 증감연산자에 대하여 제대로 된 이해를 못했던 부분이 생겼다. 퀴즈를 보면서, 어떤 부분에서 내가 잘못 알고 있었는 지에 대하여 다시 살펴보도록 하려고 한다.
* 내가 잘못생각했던 부분을 살펴보자면, 후위증감 연산자에 관한 내용이다. ( j = i ++ ) 이라고 적혀있었는데, 본인은 단순히
j= 2 가 되는 것을 생각했다. 그러나, 이에 대해 자세히 살펴보면 다음과 같다. 우선. j = i를 먼저 실행하는 것이다. 이로 인해, i = j =1이 되는 것이다. 그 후, 후위증감 연산자로 인해서 , i 만이 1만큼 더 증가하는 것이다. 따라서, i=2가 된다. 이러한 퀴즈를 통해서, 내가 제대로 파악하지 못했던 부분이 무엇이였는지 어떤 것이였는 지 자세히 알고 고쳐 갈 수 있었다.
3. 스캐너(Scanner)
- 스캐너 클래스를 통해서, 키보드를 통해 입력하는 정보를 받아들이는 방법을 배웠다.
System.in 은 입력장치(키보드)를 불러온다고 보면 되고, System.out 은 출력장치(모니터)를 불러온다고 보면 된다. 다음은 키보드의 입력으로부터 2개의 정수를 받아들여서 더한 결과를 보여주는 코딩이다. 또한, 정수를 입력하지 않을 경우 " 정수를 입력하지 않고 입력해달라고 문구가 뜨게 해놓은 것이다. 이를 통해서, 회원가입 같은 코딩을 할 수 있을 것이라고 생각한다.
* 위의 실행하고, 잘못 입력하면, 정수를 입력하지 않았다고 정수를 입력해달라고 하고, 프로그램이 끝나게 된다. 보통 회원가입을 할 경우에 , 보통의 웹페이지에서는 다시 입력하라고 해준다. 수업 도중 , 그러한 코딩을 만들 수 없을까 해서, catch 뒤에 위의 코딩을 복사해서 붙여 넣어 봤다. 이를 통해서, 해결할 수 있을 줄 알았지만, 결과는 한번만 다시 입력할 수 있을 뿐 계속해서 재입력을 할 수 없는 것을 확인했다. 아마도 try 밖에 catch가 있기에 다시 돌아가지 않고, 한번만 더 실행되는 것 같다. 잘못 입력될 경우, 계속해서 입력을 하도록 만들기 위해서 if 문이 필요할 것이라고 생각이 든다. 다음에 if 문을 통해서 만들어 보고 싶다.
* 앞으로도 계속하여 , 글을 올리려고 노력할 것이다. 혹시라도 , 이걸 보는 선배 개발자 분들이 계시다면, 제가 진행하는 부분에 있어서, 부족한 점이 많을 것이라고 생각합니다. 올리는 내용에 있어서도 잘못된 부분이 있을 수도 있습니다. 이러한 점에 있어서, 지적해주신다면 바로 고치도록 하겠습니다. 많은 응원과 격려 , 질타 부탁드리겠습니다. 감사합니다

''국비지원'의 시작' 카테고리의 다른 글
자바 비긴즈 06( FOR문, IF문 , SWITCH문 ) (0) | 2023.01.09 |
---|---|
자바 비긴즈 05 (스캐너, wrapper 클래스 , math클래스) (0) | 2023.01.08 |
자바 비긴즈 03(constructor) (0) | 2023.01.04 |
자바 비긴즈 02 (인스턴스메소드와 스태틱메소드) (0) | 2023.01.03 |
*자바 비긴즈 01( 자바의 설치 와 클래스) (0) | 2023.01.02 |