오봉이와 함께하는 개발 블로그
DAY_3 본문
728x90
day_3 정리 (2021.11.03 수요일)
연산자
산술 연산자
변수에 값을 변경 시킬 때는 실제 변수를 변경해야 한다.(System.out.println(a+1)은 출력할 때 출력 값만 변화를 시킨다.)
사칙연산(+, -, *, /, %)
- a = a + 1과 a += 1은 같은 동작(+, -, *, /, % 모두 동일)
부호연산(+(Positive),-(Negative))
public class OperatorEx1 {
public static void main(String[] args) {
// 양/음수의 부호를 바꿀 때 사용한다.
int num1 = -10;
int num2 = 20;
System.out.println(+num1); //-10
System.out.println(+num2); // 20
System.out.println(-num1); // 10
System.out.println(-num2); //-20
System.out.println(num1); // -10
System.out.println(num2); // 20
num1 = -num1;
System.out.println(num1); //10 - 대입연산자를써야부호가바뀐다
}
}
증감연산
- 전위 연산
- 변수에 연산을 먼저 하고 값을 쓴다.
- ++변수명, --변수명
- 후위 연산
- 변수를 먼저 사용하고 연산을 한다.
- 변수명++, 변수명--
연산자들의 우선순위
- 존재 하지만 우선순위를 다 외워서 사용하지 않는다.
- ()를 이용해서 정확하게 우선순위를 표현하는 것이 제일 좋다.
- 우선순위가 같은 경우 왼쪽에서 오른쪽으로 연산한다.
- () > 증감, 부정 > 곱셈, 나눗셈, 나머지 > 덧셈, 뺄셈 > 할당(=) ...
- 결과
- 정수(4) + 정수(4) = 정수(4byte)
- 정수(4) * 정수(4) = 정수(8byte)
- 정수(4) / 정수(4) = 실수(8byte)
문자열 연산
- 덧셈 연산자를 사용할 수 있다
- 문자열과 문자열의 연결
- length() : 문자열의 길이
- isEmpty() : 문자열이 공백인지 아닌지 참, 거짓으로 결과를 출력
- equals("비교하고 싶은 문자열") : 문자열이 "비교하고 싶은 문자열"과 같은지 참, 거짓으로 결과 출력
- subString(n, m) : n번째부터 m번째까지 문자를 잘라줌.
- split("원하는 값")[n] : "원하는 값"을 기준으로 배열에 잘라서 넣어주고 n번째 배열을 출력한다.
- trim() : 문자열의 앞, 뒤 공백을 제거
관계 연산자
- 비교 연산자, 참/거짓(Boolean)
- 같다(==), 같지 않다(!=), 크다(>), 크거나 같다(>=), 작다(<), 작거나 같다(<=)
- 결과는 항상 true(1), false(0)
- 결과는 문자열이 아니다.
논리 연산자
- 명제 : 참, 거짓으로 구분될 수 있는 문장
- 연산의 결과가 true or false로 나오는 명령어
- 여러 개의 명제를 결합.
- AND(&&)
- 두 연산의 결과가 모두 참이여야 참이다.
- OR(||)
- 두 연산 중 하나의 결과만 참이여도 참이다.
- NOT(!)
- 값을 반대로
- 우선순위
- ! > && > ||
배열(Array)
배열의 선언
int[] array = {1,2,3,4,5,6,7}; //4*7 = 28바이트 char[] str = {'h', 'e', 'l', 'l', 'o'}; // 2*5 = 10 바이트 String[] strr = {"Hello", "Java", "World"}; // 선언과 할당을 동시에 하는 경우 정해주지 않아도 됨. int[] arr = new int[n]; // n은 정수 // 선언만 하는 경우 배열의 크기를 정해줘야 한다.
가장 기본적인 자료구조
- 여러 자료가 직선상에 구성되어 있기 때문에 선형자료구조라고도 한다.
- 배열의 크기는 고정되어 있다.
다차원 배열
배열도 자료형 갖는다
- 배열의 크기는 자료형에 따라 다르다.
String도 Char형으로 이루어진 문자 배열이다
배열의 인덱싱은 0부터 순차적으로 부여된다.
배열의 마지막 인덱스 값은 배열의 크기가 n일 때 n-1이다.
String과 StringBuffer의 차이
- String변수에 +연산이나 concat연산을 사용해서 문자열 연산을 하면 또 하나의 변수가 생겨 자원이 낭비
- 문자열은 변경이 불가능하기 때문
- StringBuffer에 메소드를 통해 추가, 삭제를 하게 된다면 하나의 변수에 지속적으로 연산을 하게 되기 때문에 자원을 효율적 사용함
- 인덱싱은 지원하기 때문
제어문
- 조건문과 반복문의 두 가지만 가지고 모든 명령어의 실행을 제어
조건문
if
if(명제) { // 명제가 참일 경우 실행될 명령어 } else if(명제) { // 상위 명제가 거짓일 경우 순차적으로 내려가면서 명제가 참일 때 수행할 명령어 } else { // 모든 명제가 거짓일 때 수행 할 명령어 }
switch-case
- switch-case로 작성 가능한 명령어들은 if로도 표현이 가능하다. (반대는 불가능)
switch(입력변수) { case 입력값1: ... break; // 조건이 맞으면 종료시키기 위함. case 입력값2: ... break; ... default: ... // 모든 조건이 맞지 않을 때 동작(else와 비슷) break; }
728x90
Comments