Java 공부 3일차

김민주·2023년 3월 7일

java

목록 보기
3/8

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)

  1. 세로와 가로를 입력 받아 사각형의 넓이를 만드는 순서도와 프로그램을 만들어 보자.

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

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

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

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

학습소감

  • 문장을 보고 주어진 조건을 가지고 프로그램을 만들어 보는 시간을 가졌다. 내가 생각한대로 만든 프로그램이 제대로 동작하는 것을 보며 공부에 흥미를 붙힐 수 있었다.
profile
개발자를 꿈꾸는 사람

0개의 댓글