java

    [Java] 연산자(비교 연산자, 논리 연산자, 비트 논리 연산자)

    1. 비교 연산자 비교 연산자는 동등(==, !=) 또는 크기(=)를 평가해서 boolean 타입인 true/false를 산출한다. 비교 연산자는 흐름 제어문인 조건문(if), 반복문(for, while) 에서 실행 흐름을 제어할 때 주로 사용된다. 구분 연산식 설명 동등 비교 피연산자1 == 피연산자2 두 피연산자의 값이 같은지를 검사 피연산자1 != 피연산자2 두 피연산자의 값이 다른지를 검사 크기 비교 피연산자1 > 피연산자2 피연산자1이 큰지를 검사 피연산자1 >= 피연산자2 피연산자1이 크거나 같은지를 검사 피연산자1

    [Java] 정확한 계산 하는 방법

    정수 연산으로 계산하기 산술 연산을 정확하게 계산하고 싶다면 실수 타입을 사용하지 않는 것이 좋다. 아래의 코드 예제를 살펴보자. 사과 1개를 0.1 단위의 10조각으로 보고, 그 중 7조각(0.7)을 뺀 3조각(0.3)을 result 변수에 저장하는 코드이다. package ch03.sec04; public class AccuracyExample1 { public static void main(String[] args) { //산술 연산을 실수 타입으로 한 예시 int apple = 1; double pieceUnit = 0.1; int number = 7; double result = apple - number * pieceUnit; System.out.println("사과 1개에서 남은 양: " +..

    [Java] 오버플로우와 언더플로우

    오버플로우(overflow)란 타입이 허용하는 최대값을 벗어나는 것을 말한다. 반대로 언더플로우(underflow)란 타입이 허용하는 최소값을 벗어나는 것을 말한다. 정수 타입 연산에서 오버플로우 또는 언더플로우가 발생되면 실행 에러가 발생할 것 같지만, 그렇지 않고 해당 정수 타입의 최소값 또는 최대값으로 되돌아간다. 예를 들어 byte 타입일 경우 최대값 127에서 1을 더하면 128이 되어 오버플로우가 발생하여 연산 결과는 최소값인 -128이 된다. 마찬가지로 -128에서 1을 빼면 -129가 되어 언더플로우가 발생하는데, 연산 결과는 최대값인 127이 된다. byte value = 127; value++;//value 값에 1을 더함 System.out.println(value);//-128 va..

    [Java] 부호/증감/산술 연산자

    1. 부호 연산자 부호 연산자는 변수의 부호를 유지하거나 변경하는 역할이다. 연산식 설명 + 피연산자 피연산자의 부호 유지 - 피연산자 피연산자의 부호 변경 실질적으로 + 연산자는 잘 사용되지 않고, - 연산자는 변수값의 부호를 변경할 때 사용된다. 부호 연산자를 사용할 때 주의할 점은 부호 변경 후의 타입이다. 아래 코드를 살펴보자. byte b = 100; byte result = -b;//컴파일 에러 에러가 발생한 이유는 정수 타입(byte, short, int) 연산의 결과는 int 타입이다. 부호를 변경하는 것도 연산이므로 int 타입 변수에 대입해야한다. byte b = 100; int result = -b; 2. 증감 연산자 증감 연산자(++, --)는 변수의 값을 1 증가시키거나 1 감소시..

    [Java] 키보드 입력 데이터를 변수에 저장

    시작하기에 앞서 키보드로부터 입력된 데이터를 읽는 방법은 여러 가지가 있다. 이것은 나중의 글에서 다루기로 하고 이 글에서 사용하는 것은 기업체 코딩 테스트 문제에서 주로 사용하는 방법이다. 키보드에서 입력 받는 방법 키보드로부터 입력된 데이터를 읽고 변수에 저장하는 가장 쉬운 방법은 Scanner를 사용하는 것이다. 아래는 Scanner 타입 변수를 선언하고, 대입 연산자를 사용하여 new 연산자로 생성한 Scanner 객체를 변수에 대입한다. 더보기 Scanner scanner = new Scanner(System.in); scanner 변수 선언 Scanner 객체 생성 이후 다음과 같이 scanner.nextLine()을 실행하면 키보드로 입력된 내용을 문자열로 읽고 좌측 String 변수에 저장..

    [Java] 변수 사용 범위와 콘솔로 변수값 출력

    1. 변수 사용 범위 main() 메소드 블록에는 다른 중괄호 {} 블록들이 작성될 수 있다. 조건문에 해당하는 if, 반복문에 해당하는 for, while 등이 중괄호 블록을 가질 수 있는데, 이러한 중괄호 블록 내에서 선언된 변수는 해당 중괄호 블록 내에서만 사용이 가능하고 밖에서는 사용할 수 없다. 아래는 실제 코드에서의 예시들이다. public static void main(String[] args) {//메소드 블록 int var1;//메소드 블록에서 선언 if() { int var2;//if 블록에서 선언 //변수 var1과 var2 사용 가능 } for() { int var3;//for 블록에서 선언 //변수 var1과 var3 사용 가능 } //var1 사용 가능 //var2와 var3은 ..

    [Java] 타입 변환

    1. 자동 타입 변환 자동 타입 변환(promotion)이란 말 그대로 자동으로 타입 변환이 일어나는 것을 말하며, 보통 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 대입될 때 발생한다. 기본 타입을 허용 범위 순으로 나열하면 아래와 같다. 더보기 byte < short, char < int < long < float < double char 타입의 경우 int 타입으로 자동 변환되면 유니코드 값이 int 타입에 대입된다. char charValue = 'A'; int intValue = charValue;//65가 저장됨 자동 타입 변환에서 예외가 존재한다. byte 타입은 char 타입보다 허용 범위가 작음에도 불구하고 자동 변환될 수 없다. 왜냐하면 char 타입의 허용 범위는 음수를 포..

    [Java] 변수에 대한 이해_2 (논리, 문자열 타입)

    1. 논리 타입 논리 리터럴은 참과 거짓을 의미하며 true와 false로 이루어져 있다. 논리 리터럴은 boolean 타입 변수에 아래와 같이 대입이 가능하다. boolean t = true; boolean f = false; boolean 타입 변수는 주로두 가지 상태값을 저장할 필요가 있을 경우에 사용되며, 상태값에 따라 조건문과 제어문의 실행 흐름을 변경하는 데 사용할 수 있다. 또한 연산식 중에서 비교 및 논리 연산의 산출값은 true 또는 false이므로 boolean 타입 변수에 대입이 가능하다. 아래를 참고하자. int x = 10; boolena result = (x == 20);//변수 x의 값이 20인가? / False boolena result = (x != 20);//변수 x의 값..

    [Java] 자바 시작하기

    [Java] 자바 시작하기

    0. 환경 Window 11 IntelliJ IDEA Java 17 1. 윈도우 환경 변수 설정 개발자를 준비하고 있다면 Java 정도는 스스로 설치할 수 있다고 생각하여 설치했다고 가정한다. 운영체제는 프로그램들이 실행하면서 사용할 수 있는 값들을 환경 변수 이름으로 관리하게 된다. JDK를 설치하고 나면 프로그램들이 JDK를 이용할 수 있도록 환경 변수를 생성하고, Path 환경 변수를 수정해 주는 것이 좋으니 설정해보도록 하겠다. 1) 환경 변수를 새로 만들거나 편집하기 위해서는 환경 변수 대화 상자를 열어야 한다. 윈도우 키를 눌러 나오는 검색 칸에 '환경 변수'를 입력하면 [시스템 환경 변수 편집] 메뉴가 나오는데, 이것을 눌러주자. 이것을 눌러주면 아래와 같은 시스템 속성 창이 나오는데 [환경..