본문 바로가기
Study/Java

Chapter 3. 연산자 연습문제

by 로롤로롱 2023. 2. 14.

3-1 byte b=10;

      char ch='A';

      int i=100;

      long l=1000L;

      (1) b=(byte)i; // int->byte 형변환 필요

      (2) ch=(char)b; // char(2byte) > byte(1byte)지만 범위가 달라서 형변환 필요

      (3) short s=(short)ch; // short(2byte), char(2byte)지만 범위가 달라서 형변환 필요

      (4) float f=(float)l; // float(4byte) long(8byte) float범위가 더 큼 형변환 생략 가능

      (5) i=(int)ch; // int(4byte) > char(2byte) 형변환 생략 가능

3-2 True

      13

      5

      False

      2

      66

      B

      B

 // println은 값을 타입에따라 어떻게 출력할지 결정함 문자타입이므로 저장된 값에 해당하는 문자를 출력한다. 숫자출력X

      C

3-3 
      int num = 456; 
      System.out.println(num/100*100); // 100으로 나누면 int타입이므로 정수부분만 남고 *100해주면 됨

3-4

      int numOfBucket=numOfApple/sizeOfBucket+(numOfApple%sizeOfBucket>0?1:0);

      // 삼항연산자를 사용해 나머지>0이면 +1 그렇지 않으면 +0

      // int numOfBucket=((int)Math.ceil((double)num/10)); 처음엔 Math.ceil 사용함 올림해주는 함수

      //삼항연산자를 생각못하다니 ㅠㅠ

3-5

      System.out.println(num>0?"양수":(num<0?"음수":"0"));

3-6

      float celcius=(int)(5f/9*((fahrenheit-32)*100)+0.5f)/100f;
      // 변환공식 c=5/9*(f-32) 소수점 셋째자리에서 반올림 
      // 1. c=5/9*(f-32) -> 결과 37.77778 소수점 셋째자리에서 반올림하면 37.78이 나와야함
      // 2. c=5/9*((f-32)*100)을 해주면 3777.778 반올림을 해줘야하니 0.5를 더해줌 -> 0.4이하이면 +0.5해도 1을 넘지않음
      // 3. 0.5더해서 반올림 해주면 3778.278이 되며 int로 형변환해서 소수점밑을 버림
      // 4. 3778에서 /100f를 해주면 37.78로 셋째자리에서 반올림한 값을 얻을  수 있음

      // 반올림은 0.5를 더하자

      *다음에 다시 풀어보기*

'Study > Java' 카테고리의 다른 글

02. 변수  (0) 2023.04.02
01. 자바  (0) 2023.04.01
Chapter 5. 배열 연습문제  (0) 2023.03.03
Chapter 4. 조건문과 반복문 연습문제  (0) 2023.02.21
chapter 2. 변수 연습문제  (0) 2023.02.13

댓글