Frog is cry
타입별 연산(Day06) 본문
// 문자, 더블
package day07;
public class Day07_01 {
public static void main(String[] args) {
int v1 = 5;
int v2 = 2;
int result1 = v1 + v2;
System.out.println("result1 = " + result1);
int result2 = v1 - v2;
System.out.println("result2 = " + result2);
int result3 = v1 * v2;
System.out.println("result3 = " + result3);
int result4 = v1 / v2;
System.out.println("result4 = " + result4);
int result5 = v1 % v2;
System.out.println("result5 = " + result5);
double result6 = (double) v1 / v2; // 최종 연산결과가 double타입으로 나오게
// 피연산자 중 한개를 double형식으로 강제 형변환 하였다.
System.out.println("result6 = " + result6);
}
}
package day07;
/*char타입의 변수를 연산하기
* char 타입의 변수 정수 타입에 속합니다. 따라서 char타입의 변수도 연산이 가능하다
* 주의사항 : char타입이 산술연산의 피연산자가 될 경우에는 int타입으로
* 변환되므로 산출타입(연살결과 형식)은 int타입이다.
*/
public class Day07_02 {
public static void main(String[] args) {
char c1 = 'A' + 1; // 리터럴(값) 끼리의 연산에는 형변환이 없다.
// 'A'에 해당하는 유니코드 65 + 1이 계산이 된 것이다. 결과값 B
char c2 = 'A';
// char c3 = c2 + 1; // c2변수, 변수와 리터럴 간의 연산, 변수가 형변환이 일어남
// c2가 int타입으로 변환됨 int 타입의 c2와 int타입의 정수 1을 더해서
// char타입의 c3에 할당한다는 개념으로 해석되기 때문에 에러가 발생
char c3 = (char)(c2 + 1); // cast연산자에 의한 형변환의 결과를 c3에 할당함
System.out.println(c1);
}
}
package day07;
public class Day07_04 {
public static void main(String[] args) {
long x = 1_000_000; // 0이 6개
long y = 1_000_000;
long z = x * y; //
System.out.println(z);
}
}
package day07;
public class Day07_05 {
public static void main(String[] args) {
// 정확한 결과를 도출하기 위하여 변수의 타입을 결정하세요
int apple = 1;
int number = 7;
double pieceUnit = 0.1;
double result = apple - number * pieceUnit;
// pieceUnit 참여하여서 부동소숫점 연산식으로 해석됩니다. 이때 부동소숫점 연삭식은 0.1을
// 정확하게 표현 할 수 없습니다. 이것을 부동소숫점 연산의 근사치 연산의 문제점이라고 합니다.
System.out.println("사과 한 개에서");
System.out.println("0.7조각을 빼면, " );
System.out.println(result + "조각이 남아요");
}
}
package day07;
public class Day07_06 {
//부동소숫점 연산의 문제점 해결책
public static void main(String[] args) {
int apple = 1;
int totalPieces = apple * 10;
int number = 7;
int temp = totalPieces - number;
double result = temp / 10.0;
// 피연산자 중 하나는 10.0으로 표기하여야 인신결과가 실수가 됩니다.
System.out.println(result);
}
}
package day07;
public class Day07_07 {
// 문자열 연결 연산 : 덧셈 기호 ( + ) 는 정수나 실수의 덧셈 뿐 아니라
// 문자열의 덧셈에도 사용됩니다.
public static void main(String[] args) {
String str1 = "JDK" + 6.0;
// 이 문장의 연산식은 문자열 + 실수의 개념으로 "JDK" + 6.0이 사용되었습니다.
// 문자열 + 실수의 연산에서 6.0이 문자열로 자동 형변환 되는 특징을 가집니다.
// 피연산자중 한 쪽이 문자열이 아닐때 문자열로 변환되는 특징을 가집니다.
// 즉 연산식을 구성하는 피연산자가 한개라도 문자열이 있으면
// 나머지 피연산자는 문자열로 치환되어 연산됩니다.
String str2 = str1 + " 특징";
//
System.out.println(str2);
//
String str3 = "JDK" + 3 + 3.0;
// 이 식은 문자열 + 정수 + 실수로 구성된 식입니다.
// 3과 3.0이 모두 문자열로 치환되어 연산되었습니다.
System.out.println(str3);
//
String str4 = 3 + 3.0 + "JDK";
// 문자열 피연산자와 연산되는 피연산자는 문자열의 오른쪽(나중)에 위치하는 경우에 무조건 문자열로 변환된다.
// 이 문장처럼 3 + 3.0의 정수와 실수리터럴의 연산이 문자열 왼족(이전)에 있는 경우에는 무조건 문자열로 변환되지 않는다.
System.out.println(str4);
}
}
'JAVA > 국비수업' 카테고리의 다른 글
연산자 비교(Day06) (0) | 2020.07.14 |
---|---|
변수의 오버플로우(Day06) (0) | 2020.07.14 |
비트반전 연산자, 이항 연산자(Day05) (0) | 2020.07.14 |
산술 연산자, 단항 연산자, 논리 부정 연산자(Day04) (0) | 2020.07.14 |
전위형, 후위형(Day04) (0) | 2020.07.14 |
Comments