-
자바 step2 - Operator(연산자, 3항 연산자)Java 2022. 10. 24. 21:31
package test.main; /* * 1. 산술연산자 테스트 * * +, -, *, /, % */ public class MainClass01 { public static void main(String[] args) { int num1=5; int num2=2; // + 연산 하기 int sum = 10 + 1; int sum2 = num1 + num2; int sum3 = 10 + num2; //정수끼리 연산하면 결과는 정수만 나온다. int result1 = 5 / 3; int result2 = num1 / num2; //연산의 결과로 실수 값을 얻어내고 싶으면 적어도 하나는 실수여야 한다. double result3 = 5 / 3.0; double result4 = num1 / (double)num2; //앞에 있는 수를 뒤에 있는 수로 나눈 나머지 값을 얻어낸다. int result5 = num1 % num2; } }
int 타입의 변수명을 만들어서 숫자를 넣고 그것을 산술연산자를 사용하여 산술하면 값을 계산할 수 있다.
정수끼리 연산하면 값은 정수로 나온다.
실수로 계산하고 싶으면 계산하는 값 중 하나는 무조건 실수여야 된다. 아니면 type을 실수 type으로 주어야 된다.
package test.main; /* * 2. 증감 연산자 테스트 * 변수에 있는 숫자 값을 1씩 증가 혹은 1씩 감소 시킬때 사용한다. * ++, -- */ public class MainClass02 { public static void main(String[] args) { int num=0; num++; num++; num++; // num 이 최종적으로 3이 된다. int num2=0; num2--; num2--; num2--; // num2 가 최종적으로 -3이 된다. int num3=0; int result1 = num3++; // result1 에 0 이 대입되고 num3 가 1 증가한다. int num4=0; int result2 = ++num4; // num4 가 1 증가하고 result2 에 1 이 대입된다. } }
num이라는 변수명을 만들고 num++을 하면 num 안에 들어있는 숫자의 값이 1 증가한다.
반대로 num-- 를 하게 되면 안에 들어있는 숫자의 값이 1 감소한다.
num++을 하게되면 우선 원래 숫자가 대입되고 그 뒤에 1 증가한다.
반대로 ++num을 하게되면 1 증가된 상태에서 대입이 된다.
package test.main; /* * 3. 비교연산자 테스트 * 비교연산의 결과는 boolean type 을 리턴해준다. * ==, !=, >, >=, <, <= */ public class MainClass03 { public static void main(String[] args) { boolean result1 = 10 == 10; //true boolean result2 = 10 != 10; //false boolean result3 = 10 > 100; //false; boolean result4 = 10 >= 10; //true boolean result5 = 10 < 100; //true boolean result6 = 10 <= 10; //true // String type 변수 name 에 null 대입하기 String name=null; // NullPointerException 발생! //int size=name.length(); // null 인지 아닌지 비교가 가능하다 (즉 java 에서 null 값은 비교가 가능) boolean result7 = name == null; //true boolean result8 = name != null; //false } }
boolean 타입은 true와 false 밖에 반환하지 못한다. 연산(값)이 맞다면 true 틀리면 false를 반환하게 된다.
굳이 연산이 아니고 name에 null 이 들어있는지 안 들어있는지에 대한 참, 거짓도 판단 가능하다.
package test.main; /* * 4. 논리연산자 테스트 */ public class MainClass04 { public static void main(String[] args) { // or 연산 /* * 또는 이라고 읽으면 된다. * * 어느 하나만 true 면 결과는 true * 모두다 false 일때만 결과는 false */ boolean result1 = false || false; //false boolean result2 = false || true; //true boolean result3 = true || false; //true boolean result4 = true || true; //true // and 연산 /* * 그리고 라고 읽으면 된다 * * 모두다 true 일때만 결과는 true * 어느 하나만 false 면 결과는 false */ boolean result5 = false && false; //false boolean result6 = false && true; //false boolean result7 = true && false; //false boolean result8 = true && true; //true // not 연산 /* * ~가 아니면 이라고 읽으면 된다. * * boolean 값을 반전 시킨다. */ boolean result9 = !true; //false boolean result19 = !false; //true } }
|| 을 사용하면 둘 중에 하나라도 true면 true를 반환한다. 반면 &&는 둘 중에 하나라도 false이면 false를 반환하게 된다.
|| 는 or(아니면), &&는 and(그리고) 라고 읽으면 편하다.
package test.main; /* * 5. 대입연산자 테스트 * * +=, -=, *=, /=, %= */ public class MainClass05 { public static void main(String[] args) { int num=10; //num = num+2; num += 2; //num = num-3; num -= 3; //num = num*4; num *= 4; //num = num/5; num /= 5; //num = num%6; num %= 6; } }
+=, -=, *=, /=, %= 이 있다.
num 값에 +, -, *, /, % 를 하는 것이다. 그리고 그 결과값이 num에 담기게 된다.
package test.main; /* * 6. 3항 연산자 테스트 */ public class MainClass06 { public static void main(String[] args) { boolean isWait=false; // isWait 이 true 면 "기다려요" 가 대입되고 false 면 "기다리지 않아요" 가 대입된다. String result = isWait ? "기다려요" : "기다리지 않아요"; System.out.println(result); //위의 3항 연산자는 아래와 같이 if ~ else 문과 같은 로직이다. String result2=null; if(isWait) { result2="기다려요"; }else { result2="기다리지 않아요"; } System.out.println(result2); } } <console> 기다리지 않아요 기다리지 않아요
String result 값에 false 값을 가지고 있는 isWait을 넣으면 오른쪽(거짓)이 적용된다. 반대로 isWait이 true면 왼쪽이 적용된다. 3항 연산자를 if문으로 사용한 것이 밑의 예제이다.
간단한 코드는 가독성이 좋도록 3항 연산자를 사용하며, 코드가 길어지면 if문을 사용한다.
'Java' 카테고리의 다른 글
자바 step3 - Class(객체생성) 상속(2) (0) 2022.10.24 자바 step3 - Class(객체생성) 상속(1) (0) 2022.10.24 자바 step1 - 기본 8가지 타입(문자형(string), ) (0) 2022.10.24 자바 step1 - 기본 8가지 타입(정수, 실수, 논리형, 문자형(char)) (0) 2022.10.24 자바 step1 - 기본 8가지 타입 (0) 2022.10.24