진짜 변수 끝! 연산자 찍먹
내일부터는 찐 연산자
ex) 상품가격 : 135000 -> int productPrice = 135000;
ex) HDMI포트여부 : true -> boolean hdmiPort = true;
※ boolean HDMI = true; (X)
4 / 10 을 실행시켜서 결과가 0.4 가 나오는 것을 보여주려고 하는데 아래 계산 결과가 맞지 않습니다.
정상적으로 0.4 가 계산되서 출력되도록 만들어주세요.
int num1 = 4;
int num2 = 10;
double num3 = num1 / num2 ;
System.out.println( num3 );
=>
int num1 = 4;
int num2 = 10;
double num3 = (double)num1 / num2 ;
System.out.println( num3 );
num1/num2를 하면 int/int 라서 정수형 0이 나오게 되서 double 형태인 0.0이 출력이 되게 되는데
(double)num1 / num2 로 강제 형 변환을 시켜주면 double / int 로 바뀌게 되면서 4.0 / 10 이라 0.4가 나오게 된다!
(1)
int num1 = 10;
int num2 = 20;
String s1 = "30";
int num3 = num1 + num2;
String s2 = s1 + num2;
=> num3 : 30
s2 : "3020"
String s3 = num1 + num2;
-> s3은 String인데 num1+num2의 값은 int라서 문자열로 변환해주려면
①
String s3 = String.valueOf(num1 + num2);
-> String.valueOf(바꿀값)으로 바꿔주거나
②
String s5 = num1 + num2 + "";
-> 이런식으로 int+int+String으로 구성해서
"30"이라는 문자열 값이 나오도록 한다.
(2)
int num1 = 10;
int num2 = 20;
String s1 = "30";
System.out.println(num1 + num2 + s1);
-> int + int + String -> "3030"
-> 정수끼리 더한다음에 문자열화!
System.out.println(num1 + s1 + num2);
-> int + String + int -> "103020"
System.out.println(s1 + num1 + num2);
-> String + int + int -> "301020"
결과가 7.5가 나오도록 작성하세요
double a = 3.5;
double b = 4.7;
double result = _______________;
System.out.println(result);
=> double result = a + (double)b
=> a를 강제 형변환 해서 정수형으로 만들어주고 b를 더한다 -> 3.5 + 4 = 7.5
계산결과가 12가 나오도록 작성하세요
String a = "3.4";
String b = "4";
______ result = ________;
System.out.println(result);
=> String 문자열을 각각 숫자로 변환해준다
= a는 실수형
-> double d1 = Double.parseDouble(a);
= b는 정수형
-> int i1 = Integer.parseInt(b);
= a와 b가 곱해진 정수형이 나와야하고 a는 실수형이라 정수로 바꿔줘야한다! 근데 double은 int안에 못들어가니까 강제타입변환해준다!
-> int result = (int)d1 * i1; // 12
※ 위의 방법도 좋지만 더 줄일 수 있는 방법도 있다!!
String a = "3,4";
String b = "4";
int result = (int)Double.parseDouble(a) * Integer.parseInt(b);
System.out.println(result);
=> 딱 밑줄 친 부분만 채우려고 하면 이렇게 코드가 작성되는데!!! 이게 더 클린코드다!
-> 위처럼 변수를 지정해서 a를 숫자로 바꾸고 b를 숫자로 바꿀 수도 있지만
Integer.parseInt(문자열), Double.parseDouble(문자열) 이렇게 쓸 수 있다
결과가 2.5가 나오도록 작성하세요
int x = 10;
int y = 4;
___result = ___x/y;
System.out.println(result);
=> double result = (double)x / y
=> 결과가 실수형이니까 변수 앞에 double로 놓고 x/y가 정수/정수 니까 실수/정수로 바꿔줘야 결과가 실수가 나오잖아
그러니까 x를 강제 변환 시켜줘서 앞에 (double) 삽입! 그러면 실수형으로 변환된다!
-> 10.0 / 4 = 2.5
산술연산자 : + - * / %(나머지)