[복습]
1) 자바기초
- 자바 프로그램의 기본 단위: class
public class 클래스명 {
public static void main(String[] args) {
int a = 10;
}
}
가독성을 위해 {}선을 맞춰주는 것이 좋다.
식별자(Identifier): 파일 안에서 이름이 중복되면 안된다.
- 영문자 대소문자 섞어서 사용(엄격하게 가림)
- 숫자 사용가능하나 첫글자로 올 수 없다. abc123(O), 123abc(X)
- 특수문자 (_$)만 사용 가능하나 잘 사용하지 않는다.
- 클래스 이름 : 첫글자는 대문자 나머지 소문자.
두 개의 단어로 이루어진 클래스명인 경우 첫글자들은 대문자로.
- 변수명 : 첫글자 소문자 나머지 소문자
두 개의 단어로 이루어진 클래스명인 경우 첫글자들은 소문자로 두번째 단어에 대문자.
클래스명 예) MyProgram
변수명 예) myData
- 프로그램 실행의 시작과 끝 : main() 메인메서드가 시작과 끝이다.
2) 자료형: 컴퓨터에게 명령을 시키기 위해 사용함.
●기초 자료형(숫자)
정수: byte, short, int, long // 연산을 할 때는 int형만 기본으로 사용한다.
실수: float, double // 실수는 오차를 적게 하기 위해 double형을 기본으로 사용한다.
불린형 : boolean
문자형 : char(2byte)
●참조자료형 : 기초 자료형을 토대로 만든 자료형
클래스(인터페이스) : String.. " " 안에 들어있음
배열
Enum : 회사에서는 사용하지만 지금 단계에서 어렵게 느낄 수 있으니 우선 패스!
3) 변수와 상수
변수 사용하기 위해서는
- 변수를 선언
int number;
double data;
컴파일 후 메모리공간에 이름을 붙이는 것.
- 변수를 초기화 : 변수 선언 후 맨 처음으로 값을 대입하는 것.
number = 10;
data = 12.5;
-선언과 동시에 초기화
boolean bool = true;
- 한꺼번에 같은 타입으로 선언
int n1, n2, n3; // 변수 3개를 int형으로 선언
double d1, d2, d3 // 데이터타입이 같은 경우에만 가능
- 변수를 그릇, 상자에 빗대어 표현함
- 변수명의 첫글자는 소문자!
4) 연산자(Operator)
- 기호를 이용해서 특별한 계산을 하도록 한다.
- ★우선순위가 있고, 연산의 결합순서가 있다!
- 자바에서는 타입이 다른 두 개의 피연산자를 연산하려고 하면 타입을 맞춘 후 연산 수행
10 + 20 ==> int + int ==> int형
10 + 20.5 (타입이 다름) ==> int + double (내부적으로 int형이 double형으로 바뀐다) ==> (promotion; casting; 자동 형변환) double + double ==> double
- 연산자의 종류 : + - * / instanceof
5) 피연산자의 개수에 따른 분류
- 단항 연산자 : 피연산자가 1개인 경우. 대부분 피연산자 앞에 쓰임. ex) -a, ++a, --a, ~a, ~a) / 예외 a++, a--
- 이항 연산자 : (a + b, a / b)
- 삼항 연산자 : ? : (a >b ? "add" : "substract")
6) 두 가지 이상 동작을 하는 연산자
+ : ①더하기
: ②부호유지 (플러스는 플러스로, 마이너스는 마이너스로 유지) (단항일 경우)
: ③문자열 연결
"강호동" + ",씨름선수" ==> "강호동,씨름선수"
10 + "세" ==> "10세"
"연도 " + 2021 ==> "연도 2021"
- : ①뺄셈 (이항 why? 문자열은 계산하지 못함)
: ②부호 반전 (플러스를 마이너스로, 음수-> 양수, 양수-> 음수)
int a =10;
-a; 이렇게만은 사용할 수 없음. 꺼내서 넣어야함
a = -a; 이 작업을 해야만 음수가 된다.
위는 내가 한 거. (틀림^^)
cm를 m로 환산할 때, 100으로 height의 값을 100으로 나눠주는데 (175.5/100) = 1.755m
그 후에는 height/100를 h에 다시 대입해줘야 컴퓨터가 인식한다.
★이렇게! height = height/100
[본수업]
<자꾸 헷갈리는 부분>
a + 1; 만으로 끝나는 것이 아니라 다시 a에 대입해줘야 한다. a = a + 1;
int a = 0;
int b = 0;
b = ++a;
System.out.println(a);
System.out.println(b);
실행 값은
1
1
"b = ++a;"와 "b = a++;" 은 전혀 다른 값이 나온다.
why? 변수 앞에 ++이 붙을 경우 우선순위 1순위이지만, 변수 뒤에 쓰면 우선순위 15로 밀려나기 때문.
[x, y의 값을 교환하고 싶을 때]
x = y;
y = x; 이렇게 바꾼다고 변하지 않음..
x에 y의 값이 들어오고, 대입된 y의 값이 y에 그대로 대입되기 때문에 x의 값을 어딘가로 피신시킬 곳을 만들어줘야 한다.
temp라는 변수를 이용해 x를 피신.
[나머지 연산자 %]
-이항 연산자이며 정수에 사용
-어떤 수 a가 짝수인지? 홀수인지 확인할 때 주로 사용.
- a % b : a를 b로 나눈 나머지
짝수인가 홀수인가 판단하고 싶을 때 많이 사용한다.
[비교연산자]
무조건 왼쪽이 기준!
> (초과), < (미만), >=(이상), <=(이하), ==(같다), !=(같지 않다)
boolean 위에 있기 때문에 사용안해도 됨(내가 한 실수: boolean을 다시 쓰려함)
나머지 연산자로 N의 배수인지 확인하고 싶은 경우에는 z = a % N == 0;
[논리연산자: 두 개의 불리언 값을 가진]
논리연산자( &&: logical and 이고, ||: logical or 이거나!, (not))
&& : 모든 값에 만족해야 할 때, 값의 범위
|| : 하나만이라도 만족해야할 때
! : 반전 연산자
X | Y | &&일 경우 결과(둘 다 만족) | ||일 경우 결과(하나만 만족) |
T | T | T | T |
T | F | F | T |
F | T | F | T |
F | F | F | F |
boolean을 넣을 때는?
boolean 선언 또한 boolean a, b; 이와 같은 방식으로 선언.
age와 같은 변수는 항상 왼쪽에 옴.
boolean result; 변수 선언
result = age < 8 || age >= 64;
왜 불리언이 안오지? <--내가 잘못 생각한 부분
아! 이미 위에 boolean result;라고 선언이 되어있기 때문에 그렇구나!
!(not) : 반전연산
result = height >= 155 && height < 180;
result = !(height < 155 || height >= 180);
result = age < 8 || age >= 64;
result = !(age >= 8 && age < 64);
위는 연산자가 달라도 같은 값이다.
같은 값을 만들기 위해서는 모두 반대로 바꿔야 한다.
[문제1]
(내가 한 거 .. 민망)
(올바르게 출력된 값. 이건 내가 이해를 못한게 아니고 수학의 세계를 이해못한거야.. )
[문제2]
내가 한거^^;; 진짜 그지같당ㅋㅋㅋ (잘하는 사람 왜케 많앙..)
나머지 값이 생길 때마다 변수 선언하지 마시개.. 그럴 필요없다개.. 왈왈
선생님이 짠 코드
temp는 나머지 값을 계산하기 위해
254860이라는 값을 사용하지 않고 money라는 변수를 사용하는 이유 -- > money값이 달라진다고 값이 달라지면 안되기 때문에
(정답)
여기서도
temp = money - (m50000 * 50000)
temp = temp - (m10000 * 10000)
와 같이 temp에 다시 넣어주는 작업을 확인할 수 있다.
'개발자로 가는 길(국비지원과정) > 1. Java' 카테고리의 다른 글
[210420화] for문 (0) | 2021.04.20 |
---|---|
[210419월] 반복문 (0) | 2021.04.19 |
[210405목] 조건연산자, IF문, Switch-case문 (0) | 2021.04.15 |
[210413화] 자바 연산자 + 연습문제 (0) | 2021.04.13 |
[210412월] Java 첫수업_자바설치&이클립스 + 자료형 (0) | 2021.04.12 |