본문 바로가기

자바 언어 기초 - 연산자

(9)
삼항(조건) 연산자 삼항 연산자 총 3개의 피연산자를 가짐 ? 앞의 피연산자는 boolean 변수 또는 조건식. 이 값이 true이면 콜론(:) 앞의 피연산자가 선택되고, false이면 콜론 뒤의 피연산자가 선택됨 출처, 이것이 자바다 package ch03.sec11; /* * 삼항 연산자 */ public class ConditionalOperationExample { public static void main(String[] args) { int score = 85; char grade = (score > 90) ? 'A' : ((score > 80) ? 'B' : 'C'); System.out.println(score + "점은" + grade + "등급입니다."); } }
대입 연산자 대입 연산자 우측 피연산자의 값을 좌측 피연산자인 변수에 대입. 우측 피연산자에는 리터럴 및 변수, 다른 연산식이 올 수 있음 단순히 값을 대입하는 단순 대입 연산자와 정해진 연산을 수행한 후 결과를 대입하는 복합 대입 연산자가 있음 출처, 이것이 자바다 package ch03.sec10; /* * 대입연산자 */ public class AssignmentOperatorExample { public static void main(String[] args) { int result = 0; result += 10; // result = result + 10; System.out.println("result: " + result); result -= 5; // result = result - 5 ; Syste..
논리 연산자 논리 연산자 논리곱(&&), 논리합(||), 배타적 논리합(^) 그리고 논리 부정(!) 연산을 수행 흐름 제어문인 조건문(if), 반복문(for, while) 등에서 주로 이용 출처, 이것이 자바다 package ch03.sec07; /* 논리 연산자 && : 논리곱. 두개의 피연산자가 true일 경우에만 true. || : 논리합. 두개의 피연사자중 하나만 true이면 true. ! : Not true -> false, false -> true */ public class LogicalOperatorExample { public static void main(String[] args) { System.out.println("논리곱의 결과"); System.out.println("true && true:..
비교 연산자 비교 연산자 비교 연산자는 동등(==, !=) 또는 크기(=)를 평가해서 boolean 타입인 true/false를 산출 흐름 제어문인 조건문(if), 반복문(for, while)에서 실행 흐름을 제어할 때 주로 사용 출처, 이것이 자바다 문자열을 비교할 때는 동등(==, !=) 연산자 대신 equals()와 !equals()를 사용 package ch03.sec06; /* 비교연산자 : ==, !=, >, >=, true char char1 = &#39;A&#39;; //유니코드 65. 소문자a 97 char char2 = &#39;B&#39;; //유니코드 66. 소문자b 98 boolean result4 = (char1 < char2); System.out.println("result4: " + r..
나눗셈 연산 후 NaN과 Infinity 처리 나눗셈 연산에서 예외 방지하기 나눗셈(/) 또는 나머지(%) 연산에서 좌측 피연산자가 정수이고 우측 피연산자가 0일 경우 ArithmeticException 발생 좌측 피연산자가 실수이거나 우측 피연산자가 0.0 또는 0.0f이면 예외가 발생하지 않고 연산의 결과는 Infinity(무한대) 또는 NaN(Not a Number)이 됨 출처, 이것이 자바다 Infinity 또는 NaN 상태에서 계속해서 연산을 수행하면 안 됨 Double.isInfinite()와 Double.isNaN()를 사용해 /와 % 연산의 결과가 Infinity 또는 NaN인지 먼저 확인하고 다음 연산을 수행하는 것이 좋음 package ch03.sec05; public class InfinityAndNaNCheckExample { ..
정확한 계산은 정수 연산으로 정수 연산 산술 연산을 정확하게 계산하려면 실수 타입을 사용하지 않는 것이 좋다. 출처, 이것이 자바다 정확한 계산이 필요하면 정수 연산으로 변경한다. package ch03.sec04; /* 실수값 연산으로 오차발생되는 문제에 대해 1) 정확한 계산은 정수값 연산방식으로 사용. 2) BigDecimal 클래스 사용. */ public class AccuracyExample2 { public static void main(String[] args) { int apple = 1; int totalPieces = apple * 10; int number = 7; int result = totalPieces - number; System.out.println("10조각에서 남은 조각: " + result); ..
오버플로우와 언더플로우 오버플로우 타입이 허용하는 최대값을 벗어나는것 언더플로우 타입이 허용하는 최소값을 벗어나는것 출처, 이것이 자바다 package ch03.sec03; /* * overflow : 변수의 값이 오버 되었을 때 * underflow : 변수의 값이 다운 되었을 때 * * byte : -128 ~ 127 범위 * * 연산시 값이 최소 또는 최대를 벗어나는 문제가 일어날 수 있는지 코딩할 때 신경. */ public class OverflowUnderflowExample { public static void main(String[] args) { byte v1 = 127; v1++; //128 System.out.println(v1); -> -128 byte v2 = -128; v2--; //-129 Syste..
산술 연산자 산술 연산자 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)로 총 5개 출처, 이것이 자바다 package ch03.sec02; /* 산술연산자 예제 +, -, *, /, % */ public class ArithmethicOperatorExample { public static void main(String[] args) { byte v1 = 10; byte v2 = 4; int v3 = 5; long v4 = 10L; //연산에서 변수의 타입이 byte, short 는 int형으로 자동변환된다. int result1 = v1 + v2; //int result1 = (int)v1 + (int)v2; System.out.println("result1: " + result1); long..