❯ 연산자(Operator)
연산자란, 하나의 값 또는 여러개의 값을 피연산자로 하여 새로운 값을 만들어내는 기호를 의미함
산술연산자
사칙연산에 사용되는 연산자(+, -, *, /)와 나머지 연산자(%)를 포함함
나눗셈 연산자를 사용할 경우, 좌항과 우항이 모두 int형이면 그 결과도 int형이므로 소수점 이하의 값은 버려짐
ex. (case 1) int num1 = 9 / 2; (결과) 4.0
(case 2) double num2 = 9 / 2; (결과) 4.5
증감연산자: 변수의 값을 증가시키거나 감소시키는 연산자
+1 은 ++로, -1 은 -- 로 표현 가능함
- 전위형 증감연산자: 증감연산자가 피연산자보다 앞에 위치함(++num) 증감을 먼저 수행한 뒤 결과를 적용함
- 후위형 증감연산자: 증감연산자가 피연산자 뒤에 위치함(num++) 기존 값을 먼저 적용시킨 후 증감연산을 수행함
복합 대입 연산자: 대입연산자는 사칙연산자와 조합하여 사용가능함 (산술연산자)+"=" 형태
ex. num = num +3 --> num +=3 / num = num * 5 --> num *=5
비교연산자
boolean 타입으로 평가될 수 있는 조건시에 사용되며, 대소비교연산자(>, <, <=, >=)와 등가비교 (==, !=)연산자로 분류
- 대소비교연산자: boolean 타입 제외한 나머지 기본타입에 사용 가능하며 이항비교만 가능함.
두개 항목 초과로 비교할 경우 $$, || 같은 논리 연산자를 사용해야함 - 등가비교연산자: 모든 타입에 사용 가능하며 값이 동등한지 여부를 판단함. 기본타입과 참조타입간 교차비교는 불가함
논리연산자
and (&&), or (||), not (!) 연산자를 포함하며 boolean 타입을 반환함
- && : 피연산자 두개가 모두 true일 때 true를 반환
- || : 피연산자 중 하나라도 true면 true를 반환
- ! : true와 false를 반대로 바꾸는 연산자
연산자 우선순위
연산자에는 우선순위가 있음. 수학 규칙과 유사함. --> 추후 코드 작성하면서 익숙해질것!
❯ 콘솔 입출력
콘솔출력
- System.out.print (); 소괄호 안의 내용을 콘솔에 출력하고 줄은 바꾸지 않음
- System.out.println (); 소괄호 안의 내용을 콘솔에 출력한 뒤 줄바꿈 (ln: line)
- System.out.printf ("A", B); 지시자(specifier)를 사용해 변수 값(B)을 지정된 양식 A로 출력하는 메서드
콘솔입력
콘솔에 입력된 값을 변수에 할당하는것으로, Scanner 클래스를 가져와서 사용 가능
import java.util.Scanner; //Scanner 클래스를 가져옴
Scanner scanner = new Scanner(System.in); //Scanner 클래스의 인스턴스를 생성함
String inputVlaue = scanner.nextLine(); //입력한 내용을 inputValue에 저장함
System.out.println(inputValue); //콘솔에 입력한 문자열이 출력됨
이 때 Scanner는 클래스 이름이므로 새로운 인스턴스 생성 후 사용하며, System.in은 사용자로부터 입력받기 위한 스트림을 의미함
nextLine()은 문자열을 입력받으며, nextInt(), nextFloat()를 통해 정수형과 실수형 타입의 데이터도 입력 가능함
❯ 제어문(Control Flow Statements)
조건문과 반복문을 통틀어서 제어문이라고함.
코드는 위에서부터 아래로 순차적으로 수행되는데, 제어문을 사용해 흐름을 원하는 방향으로 바꿀 수 있음.
- 조건문: if, switch
- 반복문: for, while, do while
조건문
- if / else if
조건식이 참일때 블록 안의 내용이 수행됨. 조건이 여러개일 경우 else if 를 사용함
if (조건식1) {
//조건식1 참일때 수행내용
} else if (조건식2){
//조건식1 거짓이고 조건식2 참일때 수행내용
} else {조건식1, 조건식2 모두 거짓일때 수행내용}
- switch문: 변수가 어떤 값을 갖는지에 따라 실행문이 '선택'되는것.
if 문에서는 else if로 각각 지정해주어야하는 반면 switch는 각 변수값에 따른 실행 내용을 기재하므로 비교적 간결함.
대신 break 문을 작성하지 않으면 아래의 모든 case문을 통과하게 되므로 필요에 따라 break문을 작성해야함
switch(인자){
case A :
A일때 수행내용;
break; // A로 수행하고나면 반복문을 빠져나감
case B :
B일때 수행내용;
break;
case C :
C일때 수행내용;
break;
default :
A, B, C 모두 아닐때 수행내용;
break;
}
조건문으로 배우는 알고리즘
알고리즘이란, 문제 해결을 위한 절차나 방법을 정해진 형태로 나타낸것을 의미함
프로그램이 수행되는 절차를 코드로 작성할 때, 그 절차를 언어(자연어)로 작성하는 것을 수도코드(pseudocode)라고 함
정상 작동하지는 않으나 알고리즘을 이해하는데 도움이됨.
시간표상 오늘 오후 학습은 모두 페어 프로그램으로 진행될 예정이었다.
시간이 남아서 미리 해당 내용을 학습해둔 상태였는데, 마침 페어님도 모든 문제를 풀어놓은 상태라서
서로 풀어간 방향을 공유하는 방법으로 페어 활동을 진행했다.
페어님이 작성하신 답변이 내가 작성했던 답보다 훨씬 간결한 경우들이 있었다.
같이 토론하고 배워가는 과정을 통해 내가 생각해보지 못한 방법을 찾을 수 있어서 좋았다.
Java 기초 과정은 이번주 수요일까지 진행하게 되는데, 잘 숙지할 수 있도록 반복해서 연습해야겠다.
'부트캠프 개발일기 > Java' 카테고리의 다른 글
10일차: 객체지향 프로그래밍 기초(생성자, 내부클래스) (0) | 2023.02.24 |
---|---|
9일차: 객체지향 프로그래밍 기초(Class, Field, Method) (0) | 2023.02.23 |
8일차: Java 기초(배열) (0) | 2023.02.22 |
7일차: Java 기초(반복문/for, while, do-while) (0) | 2023.02.21 |
5일차: Java 기초(변수, 타입, 문자열) (0) | 2023.02.17 |