관리 메뉴

Frog is cry

타입별 연산(Day06) 본문

JAVA/국비수업

타입별 연산(Day06)

Frog is cry 2020. 7. 14. 15:44

// 문자, 더블 

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);
	}
}
Comments