1. 다양한 연산자 사용법과 우선순위
1) 대입 연산자
- x=3 은 x에 3을 넣는다는 의미이다.
- = 은 기존의 데이터를 지우고 새로운 데이터를 넣는다는 의미이다.
- a=b=c 는 오른쪽에 있는 값을 왼쪽에 넣으므로 abc 모두 c값으로 바뀐다.
2) 산술 연산자
- 산술연산자는 + - / * %와 같이 숫자 연산과 관련된 연산자이다.
- 이들 모두 이항 연산자이다. 이항 연산자란 2개의 데이터를 가지고 연산한다는 의미이다.
연산자 우선순위 기초 실행순서
(1) () 괄호가 우선순위가 가장 높다.
(2) * / % 가 - + 보다 우선순위가 높다.
(3) 우선순위가 같으면 왼쪽에서 부터 순서대로 2개씩 실행된다.
3+4+5, 7+5, 12 와 같은 순으로 실행된다.
3)증감연산자
- ++x : 해당 줄 이전에 이미 x값이 하나 증가하여 실행됨
- x++ : 다음 줄부터 x가 하나 증가됨
- --x : 해당 줄 이전에 x 값이 하나 감소하여 실행됨
- x-- : 다음 줄부터 x가 하나 감소됨
ex)

int a=5
a를 출력하고 다음줄부터 1증가 ->6
해당줄에서 1 증가시키고 a 출력 -> 7
해당줄에서 1 감소시키고 a 출력 -> 6
해당줄에서 1 감소시키고 a 출력 -> 5
a를 출력하고 다음줄부터 1감소 -> 5
a 출력 결과 -> 4
4) 관계(비교)연산자
- 두 수의 관계가 참인지 거짓인지 비교하는 연산자
- 연산 결과는 boolean 형태의 true 아니면 false
- 조건문과 반복문의 조건식으로 사용됨

5) 여러가지 연산자
- 피연산자의 갯수에 따라 단항연산자, 이항연산자, 삼항연산자로 구분된다.
- 단항 > 이항 > 삼항 순으로 우선순위를 가진다.
삼항연산자
- 조건식 ? true식 : false식; -> 조건식부분이 true면 true식만 남고 false면 false식만 남는다.
- true ? 1:0; -> ? 앞부분이 true면 1이남고 false면 0이 남는다.
2. 형변환과 캐스팅 연산
- 형변환이란? 프로그램에서 특정 자료형을 다른 자료형으로 변환하는 것
- 자동형변환과 강제형변환이 있다.
- 자동형변환 : 보통 작은 크기의 자료형을 큰 크기의 자료형에 넣을 때 일어남
- 강제형변환 : 캐스팅 연산자를 사용하여 기술, 큰 데이터를 작은 공간에 강제로 넣는 작업을 진행할 때 데이터 손실 발생할 수 있음
자동형변환시 고려되는 부분
- 자료형의 저장 범위 크기는 다음과 같다.
byte < short < int < long < float < double
- int 이하 자료형은 int 형으로 자동형변환 된다.
- int는 long, float, double로 자동형변환 된다.
- long은 float, double로 자동형변환 된다.
- float는 double로 자동형변환 된다.
- boolean 자료형은 java에서는 자동형변환 및 강제형변환이 불가능하다.
3. Scanner, parseInt
- java.util.Scanner scanner : Scanner라는 자료형 변수를 scanner로 만든 것이다.
- =new java.util.Scanner(System.in); : scanner 변수를 사용할 수 있도록 해주는 부분이다.
- scanner.nextLine(); : 사용자 입력을 기다리는 부분
- Integer.parseInt() 메소드 : 소괄호 안에 오는 문자열을 정수로 바꿔 준다.
- 실수는 Double.parseDouble() 메소드이다
4. 실습(1)

문제1. 다음 코드를 보고 1~6번까지 각각 어떤 문제가 있는지 확인하여 설명해 보고 문제가 발생하지 않도록 변경해 보자.
1) 오른쪽 값은 double형인데 자료형은 float이다
변경 : 왼쪽 자료형 float를 double로 바꾼다 또는 오른쪽 값을 1.234f 로 바꾼다.
2) s+c가 int형 이하 자료형의 연산이므로 자동 형변환되어 타입이 맞지 않는 오류가 생겼다.
변경 : s2의 자료형 short 를 int로 바꾼다.
3) s+s 가 int형 이하 자료형의 연산이므로 자동 형변환되어 타입이 맞지 않는 오류가 생겼다.
변경 : s3의 자료형 short를 int로 바꾼다.
4) c+s 가 int형 이하 자료형의 연산이므로 자동 형변환 되어 타입이 맞지 않는 오류가 생겼다.
변경 : c2의 자료형 char을 int로 바꾼다.
5) 변경할 점이 없다.
6) b+i 에서 b는 boolean형 이므로 자동 형변환 및 강제 형변환이 불가능하다 -> 같은 자료형이 아니라 에러
변경 : boolean을 int형으로 바꾼다. int i3=(b)? 1:0; (삼항연산자)
문제2. 다음 출력 결과가 무엇인지 확인해 보고 이유를 이야기해 보자.
1) 3+3+“hello” -> 6hello 이유 : 왼쪽에서부터 계산을 하므로 3+3 = 6 -> 6+"hello" = 6hello 순으로 실행된다
2) 3*“hello”
3)“hello”+4+4 +는 이항연산자로 왼쪽에서 오른쪽으로 2개 항씩 연산 된다. -> hello44
이유 : "hello" + 4 는 문자 + 숫자이므로 데이터 타입이 문자로 변한다 그래서 hello4 -> hello4 + 4 = hello44
문제3. 잘못된 점을 설명하시오. int a= “10”; double d=(double) “123.3”;
"10" 과 "123.3" 은 문자열을 나타낸 것이다 그러므로 ""을 없애야 한다.
문제4. String name= “홍길동”; int age=5 일때 변수에 값을 넣어서 다음과 같이 출력하는 프로그램을 만들어 보자.
“이름은 홍길동 나이는 5 입니다.”

5. 실습(2)
-
세로와 가로를 입력 받아 사각형의 넓이를 만드는 순서도와 프로그램을 만들어 보자.

-
a 센치미터가 몇 미터 몇 센치인지 출력하는 프로그램을 구현 하시오. 100cm=1m

-
잔디의 가격은 1 제곱 미터에 a원일 때 윗변이 b,아래변이 c, 높이d인 사다리꼴에 잔디를 심으려면 얼마의 비용이 드는지 구하는 프로그램을 만들어 보자.

-
키를 m로 소수점 2째 자리까지 입력받아 cm로 바꿔주는 프로그램을 만들어 보자.

-
연필 한박스에 12자루의 연필이 들어 있고 연필 1자루는 1000원 이다. 소비자가 몇 박스와 연필 몇자루를 구매할 것인지 입력 받아 지불해야 할 돈을 계산해주는 프로그램을 만들어 보자.

학습소감
- 문장을 보고 주어진 조건을 가지고 프로그램을 만들어 보는 시간을 가졌다. 내가 생각한대로 만든 프로그램이 제대로 동작하는 것을 보며 공부에 흥미를 붙힐 수 있었다.