공부/전자컴퓨터공학

Java 연산자(Operator) 및 콘솔 입출력 Java 기초 배우기

AhJustC 2024. 5. 9. 15:40
반응형
산술연산자

수학 연산자와 동일하다. +, -, *, / 가 있다. 우리가 일반적으로 쓰는 연산자와 다른게 있다면 % 만 확인하면 될 것 같다. 연산자에서 %는 백분율이 아닌 나머지를 반환하는 연산자이다. 예를 들면 7%3 은 결과가 1이다. 몫과 나머지, 초등학교때 이야기 듣고 오랜만에 보는 나머지이다.

 

증감연산자

어떤 정수 타입 변수가 가진 값을 증가시키거나 감소시켜야 하는 경우가 있는데 이러할 때 아래와 같이 작성을 할 것이다.

num1 = num1 + 1; // num1의 값은 2가 됩니다.
num2 = num2 - 1; // num2의 값은 0이 됩니다.

 

이 코드를 증감 연산자를 이용하여 아래와 같이 작성할 수 있다.

 

num1++; // num1 = num1 + 1;과 같습니다.
++num1; // num1 = num1 + 1;과 같습니다.

num2--; // num2 = num2 - 1;과 같습니다.
--num2; // num2 = num2 - 1;과 같습니다.

 

주의해야할 점은 증감 연산자의 순서가 달라질 수 있다는 점이다. 

증감연산자가 피연산자보다 앞에 있으면 전위형 증감연산자로, 증감 연산을 먼저 수행한 후 그 결과값을 적용한다.

증감연산자가 피연산자보다 뒤에 있으면 후위형 증감연산자로 기존의 값을 먼저 적용하고 그 다음에 증감 연산을 수행한다.

아래의 코드에서 첫번째는 num1에 전위형 증감연산자를 적용한 것이다. num1의 값이 1 증가한 후 그 결과값이 prefix에 할당되어 num1 값은 2, prefix 값은 2이다.

반대로 두번째 num2에 후위형 증감연산자를 사용하여 num2 값이 먼저 postfix에 할당 된 후 1이 증가하기 때문에 num2 값은 2, postfix의 값은 1이 된다.

순서가 다르기에 할당 결과가 다를 수 있어 조심해야한다.

int num1 = 1;
int prefix = ++num1;

int num2 = 1;
int postfix = num2++;

 

복합 대입 연산자

앞서 +1 씩 증가하는 코드들은 아래와 같이 작성하고, 증감연산자로 표현할 수 있는 것을 알았다.

하지만 1이 아닌 다른 숫자라면 아래와 같이 표현할 수 없다. 그래서 = 기호를 넣어 나타낼 수 있는데 그것이 복합 대입 연산자이다. 

num1 = num1 + 1; // num1의 값은 2가 됩니다.
num2 = num2 - 1; // num2의 값은 0이 됩니다.
// num1~5의 값을 모두 10이라고 한다면,
num1 += 3; // num1 -> 13
num2 -= 3; // num2 -> 7
num3 *= 3; // num3 -> 30
num4 /= 3; // num4 -> 3
num5 %= 3; // num5 -> 1

 

반응형
대소 비교 연산자

대소를 비교하여 true, false 값으로 결과를 나타낸다. 다만 비교 연산자는 이항만 비교가 가능하다. 다시 말해 1 초과 10 미만 이라는 값을 표현할 때, 1<x<10 이 아닌 1<x && x<10 으로 나누어 나타내야 한다.

 

등가 비교 연산자

두 항의 값이 동등한지 여부를 true, false 값으로 나타낸다 1==1 은 true, 1==2는 false 이다.

 

논리 연산자

논리연산자는 AND 연산자(&&), OR 연산자(||), NOT 연산자(!) 가 있다.

 

연산자 우선순위

덧셈, 뺄셈보다 곱셈, 나눗셈을 먼저하는 사칙연산의 순서처럼 연산자에는 우선순위가 있다.

우선순위 연산자 내용
1 ( ), [ ] 괄호, 대괄호
2 !, ~, ++, -- 부정, 증감연산자
3 *, /, % 곱셈, 나눗셈 연산자
4 <, <=, >, >= 대소 비교 연산자
5 && AND 연산자
6 || OR 연산자
7 ? : 조건 연산자
8 =, +=, -=, /=, %= 대입, 할당 연산

 

콘솔 출력 하기: System.out.print()

소괄호 안의 내용을 출력하고 줄바꿈은 하지 않는다.

 

콘솔 출력하고 줄 바꾸기: System.out.println()

ln은 line을 뜻하며 콘솔 출력 후 커서는 다음 줄로 이동하게 된다.

 

콘솔 형식대로 출력하기: System.out.printf()

f는 formatted의 약자로 지시자(specifier)를 이용해 여러 형식으로 출력해 주는 메서드이다. 주로 문자열을 출력해야할 때 사용하게 되며 지시자(출력포맷) 종류로는 %b(불리언), %d(10진수), %o(8진수), %x, %X(16진수), %c(문자), %s(문자열), %n(줄바꿈) 등이 있다.

 

콘솔 입력 이해하기
import java.util.Scanner;                 // Scanner 클래스를 가져옵니다.

Scanner scanner = new Scanner(System.in); // Scanner 클래스의 인스턴스를 생성합니다.
String inputValue = scanner.nextLine();   // 입력한 내용이 inputValue에 저장됩니다.

System.out.println(inputValue);           // 입력한 문자열이 출력됩니다.

 

1. import java.util.Scanner;

데이터를 입력받는 기능을 작은 프로그램으로 만들어둔 것이 Scanner이다. 이 Scanner는 java.util 이라는 위치에 저장되어있다. 즉 'kava.util 에 있는 Scanner를 이 소스코드로 불러와라!' 라는 의미이다

 

2.Scanner scanner = new Scanner(System.in)
Scanner 클래스를 new 연산자를 통해 인스턴스를 생성하고 생성된 인스턴스를 변수 scanner에 할당하는 코드이다.

 

3.String inputValue = scanner.nextLine();

scanner.nextLine()은 문자열을 입력받기 위한 코드이며 입력받은 문자열은 inputValue라는 변수에 할당되어 저장된다.

반응형