N스크린하이브리드앱과정/JAVA

[2일차] 5~7교시. JAVA/JSP수업: 연산자 종류와 이것들을 요리하기!(이클립스)

광천스러움 2013. 7. 16. 13:58

*연산자의 종류

1. 연산자 우선순위: ()괄호먼저, 왼쪽->오른쪽 순으로 처리됨
2. 단항연산자: +,-(부호) --,++(증감) !(NOT) ~(NOT,비트상)
3. 산술연산자: *, /, %, +, -
4. 비교(관계)연산자: > >= < <= == !=
5. 논리연산자: &&, ||. 비트에서: &, |, ^(XOR)
6. 삼항(조건)연산자: 조건?참값:거짓값
7. 대입연산자: =, *=, /=, +=, -=

 

 

*정수형과 실수형의 나눗셈

헷갈리는 분들을 위해 개념에 대해 간단히 설명하겠다.

정수형에는 byte(1), short(2), int(4), long(8)이 있고

실수형에는 float과 double 두 종류가 있다.

각 숫자의 범위를 계산하는 방법은, 예를 들어 byte형의 경우, 1byte = 8bit. 즉 2^8개 숫자를 반으로 나눈 범위에 들어간다(-128~127).

 

자, 이제 본격적으로 나눗셈에 대해 알아보자.

 (1) 정수형 / 정수형 = 정수형

 (2) 정수형 / 실수형 = 실수형

실수를 나눗셈할 때에는 저렇게 2가지 방법으로 해도 결과는 같게 나온다.

 

결과

 

 

 

*단축키

 - ctrl + shift + f : 코딩 모양 자동정렬(편리함!)

 

 

*두 정수의 곱셈(명시적 형변환): 곱한 수의 결과가 int형 범위보다 커질 경우

a와 b는 백만이다. 둘을 곱하면 1조가 나오는데, int형은 약 21억 정도이므로 범위를 벗어나서 쓸 수 없다. 따라서 한단계 높은 long을 써줘야 한다.

 

그렇다면 int형에서 long형으로 형변환을 해줘야 하는데,

이렇게 작은 쪽에서 큰 쪽으로 형변환하는 작업을 "명시적 형변환"이라 한다.

또다른 형변환의 종류로 "묵시적 형변환"이 있는데, 이 형변환은 코딩 3번째 줄에서 괄호부분()을 생략할 수 있지만, "명시적 형변환"은 생략할 수 없고 무조건 표기해줘야 한다.

 

 

*문자형의 출력과 아스키(ASCII)코드

코딩

 

결과

첫번째 결과로 문자형인 a가 출력되는건 당연해 보인다. 하지만 두번째 결과로 나오는 97은 어떻게 나오게 된 것일까?

 

두번재 결과는 char형에서 int형으로 "명시적 형변환"을 해준 것이다.

소문자 a는 실제로 컴퓨터가 알아들을 수 있는 숫자로 이루어져 있는데, 바로 "아스키코드"로 이루어져 있다. 소문자 'a'에 대한 아스키코드는 97로 정해져 있으므로, 출력값도 당연히 97이 되는 것이다.

 

그렇다면 세번째 결과는 어떻게 된 것일까? 이미 두번째 결과에서 변수 c1은 "정수형"으로 변환되었다. 그러므로 변환된 아스키코드값 97과 숫자 10이 더해져 107이라는 결과가 나온 것이다.

 

 

*관계연산자를 이용한 변수 a의 참과 거짓 판별

코딩

 

결과

변수 a의 값은 50으로 초기화 되어있고, 첫번째로 변수 a가 10보다 크냐고 묻고 있으므로 결과는 참이 된다. 첫번째 출력문에서 (a >10)과 같이 관계연산자를 사용하여 a값을 묻게 되면, 컴퓨터는 그 물음이 맞는지, 아닌지를 판단하여 boolean형인 "true" 혹은 "false"의 결과값을 출력해준다.

 

 

아래는 다양한 참과 거짓 판별 예제다.

코딩

 

결과

 

*기타 판별

(1) 10대인지 아닌지 알아내기

(2) 대문자의 아스키코드값 알아내기

(3) b의 대문자 판별하기

 

결과 

 

힘들다 고만할래...

이 뒤에 한 내용들은 다 알던 내용이라~ 생략할련다.

 

이제 놀러가야지! /(ㅇ_ㅇ)/ 뿅~