Java/연산자
-
연산자 연습문제Java/연산자 2020. 10. 20. 18:06
3-1. 다음 중 형변환을 생략할 수 있는 것은? (모두 고르시오) byte b = 10; char ch = 'A'; int i = 100; long l = 1000L; 1) b = (byte)i; // int(4byte) --> byte(1byte)이므로 반드시 형변환 필요 2) c = (char)b; // byte(1byte) --> char(2byte)이지만 범위가 달라서 형변환 필요 3) short s = (short)ch; //char, short는 2byte이지만 범위가 달라서 형변환 필요 4) float f = (float)l; //float(4byte)의 범위가 long(8byte)보다 커서 생략가능 5) i = (int)ch; //char(2byte) --> int(4byte) 이므로 생..
-
조건 연산자Java/연산자 2020. 10. 20. 15:42
조건 연산자는 조건식, 식1, 식2 모두 세 개의 피연산자를 필요로 하는 삼항 연산자이며, 삼항 연산자는 조건 연산자 하나뿐이다. 조건식 ? 식 1 : 식 2 조건 연산자는 첫 번째 피연산자인 조건식의 평가결과에 따라 다른 결과를 반환한다. 조건식의 평가결과가 true이면 식1이, false이면 식2가 연산결과가 된다. 가독성을 높이기 위해 조건식을 괄호( )로 둘러싸는 경우가 많지만 필수는 아니다. result = ( x > y ) ? x : y //괄호 생략 가능 위의 문장에서 식 'x > y'의 결과가 true이면, 변수 result에는 x의 값이 저장되고, false이면 y의 값이 저장된다. 위의 코드에서 x의 값이 7, y의 값이 10 일때, 이 식은 다음과 같은 과정으로 계산된다. result..
-
논리 부정 연산자Java/연산자 2020. 10. 20. 15:03
논리 부정 연산자는 피연산자가 true이면 false를, false이면 true를 결과로 반환한다. true와 false를 반대로 바꾸는 것이라고 생각하면 된다. 논리 부정 연산자 '!'가 주로 사용되는 곳은 조건문과 반복문의 조건식이며, 이 연산자를 잘 사용하면 조건식이 보다 이해하기 쉬워진다. 예를들어 '문자 ch는 소문자가 아니다'라는 조건을 아래의 왼쪽과 같이 쓰기보다 오른쪽과 같이 논리부정 연산자 '!'를 사용하는 쪽이 알아보기 쉽다. ch 'z' !( 'a'
-
논리 연산자 && || , while문을 이용하여 Scanner 입력받기Java/연산자 2020. 10. 20. 12:38
'x가 7보다 작다'라는 조건은 비교 연산자를 써서 'x < 7'과 같이 표현할 수 있다. 그러면 'x가 7보다 작거나 또는 10보다 크다'와 같이 두 개의 조건이 결합된 경우에는 어떻게 표현해야 될까? 이때 사용하는 것이 '논리 연산자'이다. 논리연산자는 둘 이상의 조건을 '그리고(AND)'나 '또는(OR)'으로 연결해서 하나의 식으로 표현할 수 있게 해준다. 논리연산자 '&&'는 우리말로 '그리고(AND)'에 해당하며, 두 피연산자가 모두 true일 때만 true를 결과로 얻는다. '||'는 '또는(OR)'에 해당하며, 두 피연산자 중 어느 한 쪽만 true이어도 true를 결과로 얻는다. 그리고 논리 연산자는 피연산자로 boolean형 또는 boolean형 값을 결과로 하는 조건식만을 허용한다. |..
-
문자열의 비교Java/연산자 2020. 10. 20. 12:22
두 문자열을 비교할 때는, 비교 연산자 '=='대신 equals( )라는 메서드를 사용해야 된다. 비교 연산자는 두 문자열이 완전히 같은 것인지 비교할 뿐이다. 문자열의 내용이 같은지 비교하기 위해서는 equals( )를 사용해야 된다. equals( )는 비교하는 두 문자열이 같으면 true를 다르다면 false를 반환한다. String str = new String("java"); //equals( )는 두 문자열의 내용이 같으면 true, 다르면 false를 결과로 반환한다. boolean result = str.equals("java"); //내용이 같으므로 result에 true가 저장된다. 문자열의 대소문자를 비교할수도 있는 지 확인해 보고싶어서 확인해보았다. 원래 String은 클래스이므로,..
-
비교 연산자Java/연산자 2020. 10. 20. 11:40
비교연산자는 두 연산자를 비교하는 데 사용되는 연산자이다. 주로 조건문과 반복문의 조건식에 사용되며, 연산결과는 오직 true와 false 둘 중의 하나이다. 비교연산자 역시 이상연산자이므로 비교하는 피연산자의 타입이 서로 다를 경우에는 자료형의 범위가 큰 쪽으로 자동 형변환하여 피연산자의 타입을 일치시킨 후에 비교한다는 점에 주의해야한다. 대소비교 연산자 = 두 피연산자의 갑의 크기를 비교하는 연산자이다. 참이면 true, 거짓이면 false를 결과로 반환한다. 기본형 중에서는 boolean을 제외한 나머지 자료형에 다 사용할 수 있지만 참조형에는 사용할 수 없다. 비교연산자 연산 결과 > 좌변 값이 크면, true 아니면 false = 좌변 값이 크거나 같으면, true 아니면 false
-
나머지 연산자Java/연산자 2020. 10. 20. 00:24
나머지 연산자는 왼쪽의 피연산자를 오른쪽 피연산자로 나누고 난 나머지 값을 결과로 반환한다. 나눗셈에서처럼 나누는 수(오른쪽 피연산자)로 0을 사용할 수 없고, 피연산자로 정수만 허용한다. 나머지 연산자는 주로 짝수, 홀수 또는 배수 검사 등에 주로 사용된다. 나머지 연산자(%)는 나누는 수로 음수도 허용한다. 그러나 부호는 무시되므로 결과는 음수의 절대값으로 나눈 나머지와 결과가 같다. System.out.println(10 % 8); //10을 8로 나눈 나머지 2가 출력된다. System.out.println(10 % -8); //위와 같은 결과를 얻는다. 그냥 피연산자의 부호를 모두 무시하고, 나머지 연산을 한 결과에 왼쪽 피연산자(나눠지는 수)의 부호를 붙이면 된다. [참고 도서 Java의 정석..
-
Math.round( )로 반올림하기Java/연산자 2020. 10. 19. 23:52
반올림을 하려면 Math.round( )를 사용하면 된다. 이 메서드는 소수점 첫째 자리에서 반올림한 결과를 정수로 반환한다. long result = Math.round(7.52); //result에 8이 저장된다. 만일 소수점 첫째 자리가 아닌 다른 자리에서 반올림을 하려면 10의 n제곱으로 적절히 곱하고 나누어야 한다. 아래의 예제의 결과는 pi의 값을 소수점 넷째 자리인 5에서 반올림해서 3.142가 출력되었다. round 메서드는 매개변수로 받은 값을 소수점 첫째 자리에서 반올림을 하니까 Math.round(3141.592)의 결과는 3142이다. Math.round(pi * 1000) / 1000.0 ---> Math.round(3.141592 * 1000) / 1000.0 ---> Math...
-
산술 변환Java/연산자 2020. 10. 19. 22:53
이항 연산자는 두 피연산자의 타입이 일치해야 연산이 가능하므로, 피연선자의 타입이 서로다르다면 연산 전에 형변환 연산자로 타입을 일치시켜야한다. 이처럼 연산 전에 피연산자 타입의 일치를 위해 자동 형변환되는 것을 '산술 변환' 또는 '일반 산술 변환'이라하며, 이 변환은 이항 연산에서만 아니라 단항 연산에서도 일어난다. '산술 변환'의 규칙은 다음과 같다. 1. 두 피연산자의 타입을 같게 일치시킨다. (보다 큰 타입으로 일치) - 피연산자의 값손실을 최소화하기 위한 것 long + int ---> long + long ---> long float + int ---> float + float ---> float double + float ---> double + double ---> double 2. 피연..
-
사칙 연산자Java/연산자 2020. 10. 19. 21:37
사칙연산자는 프로그래밍에 가장 많이 사용되는 연산자들이다. *, /, % 연산자가 +, - 연산자보다 우선순위가 높으므로 먼저 처리된다. 그리고 피연산자가 정수형인 경우, 나누는 수로 0을 사용할 수 없다. 만일 0으로 나눈다면, 실행시에 에러가 발생할 것이다. [참고 도서 Java의 정석_기초편] http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788994492049&orderClick=LEa&Kc=