2023/09/18 🌱 자료형과 형변환(캐스팅) , 그리고 if 조건문

공부하는 개발자

about 오늘도 뚝딱🔨 뚝딱 하는 주니어 개발자👩🏻‍💻

북마크

고정글

최근 글

2023/09/18 🌱 자료형과 형변환(캐스팅) , 그리고 if 조건문

date
read
반응형

 
 

👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇

 

 

 

 

 

 

 

 

 

실습 - 자료형과 캐스팅(형변환)

    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = a + b;
        System.out.println(c);                      // c 변수 값을 출력하라 의미 외에는 어떤 설명을 할 수 없는것을 유의
        System.out.println(c+20);                   // c 변수 값을 값에 정수 20을 연산하여 출력한다, c의 값은 변하지 않는다 . 출력만함
        System.out.println(b/a);                    // b 변수 값에 a 변수 값을 나누는 산술 연산의 값을 출력한다.
        System.out.println(a/b);                    // a 변수 값에 b 변수 값을 나누는 산술 연산을 한 뒤 출력한다.
                                                    // 단, 자료형이 정수임으로 결과값이 실수 이더라도 정수의 값만 출력한다.

        System.out.println((float) a/b);            // 캐스팅 , 자료형 형 변환 방법

        float d =  a/b;
        System.out.println(d);                      // 0.0으로 찍히는 이유
        System.out.println(a);                      // 정수로 찍히는 이유

 

a 는 정수 10 이고
b 는 정수 20 이다
c 는 정수 30 이다
d 는 실수 자료형 이다. a 의 정수 자료형과 b의 정수 자료형의 결과는 0.5이지만 두 변수의 자료형이 정수 임으로 0이라는 값이 d에 입력된다.
d 의 자료형은 실수형 임으로 0.0을 갖게 된다. (연산자 처리 순서에 따라서 진행된다)
a 의 자료형은 이미 정수로 선언되어 있으므로 그대로 정수형을 유지하며 값인 10을 출력하게된다.
형 변환은 잠깐 바뀔 뿐이고 실제 자료형이 바뀌지 않는다.
-- 응용문제 --
float d 의 값이 0.5가 되게 하라
float d = (float) a/b; // 캐스팅하여 일시적으로 a의 자료형을 실수로 변환화면 됨

 

 

 

 

 

 

 

 

 

실습 - 자료형과 캐스팅(형변환) , 결과값 유추해 보기 

 

int aa = 20;
float bb = 10.2f;
System.out.println(aa);       
System.out.println(bb);       
bb = bb+20;                   
System.out.println(bb);        
System.out.println(aa+(int)bb);
System.out.println(aa); 

int dd = 4;
float cc = aa*(2+dd)/3+(float)bb;
System.out.println(cc);

 

 

출력 값 확인

더보기

20

10.2

30.2

50

20

70.2

 

 

 

 

 

 

 

실습 - IF , 조건문

public static void main(String[] args) {
    // 철수는 자격증 시험을 보았다. 그 정수를 저장한다
    int point = 77;
    
    // 시험 문제 1개가 오류, 그 문제는 모두 정답 처리함 + 3점이 올라갔다.
    point += 3;
    
    System.out.println("철수의 점수 : " + point);
    
    // 60점 이상이면 합격이다. 합격인가? 불합격인가 ?
    // 변수는 값을 저장하는 것 이다. 저장공간을 할당한다
    // 해당 내용은 비교 하고 판단하는게 필요하다.
    // 비교 판단은 정확한 기준이 필요하다.
    // 홍길동은 잘 생겼다 = 기준이 없으므로 불가
    // 홍길동의 키가 178이상이다 = 기준이 있으므로 가능
    
    if (point >= 60) {
        System.out.println("합격");
    }

    System.out.println("---------------------------------------------");

    point = 40;
    // 철수의 값을 변경

    if (point >= 60) {
        System.out.println("합격");
    }
    
    // 60점 이상이라는 값에 참이 아니므로 실행되는게 없음

    System.out.println("---------------------------------------------");

    // else 문을 사용하여 60점 이하일 경우 불합격을 출력하게함.
    
    if (point >= 60) {
        System.out.println("합격");
    } else {
        System.out.println("불합격");
    }

    System.out.println("---------------------------------------------");

    // 참 인것만 관심이 있는 경우 If 문만 사용하면 된다
    // 참과 거짓인 부분이 되야 하는 경우 if ~ else 문을 사용 해야 한다.

 

 

 

 

 

 

 

 

 

 

 

실습 - 조건문의 과제

public static void main(String[] args) {
    // 문제 1
    // int point = 89
    // 40 점 미만이면 과락, 60점 미만이면 불합격, 60점 이상이면 합격이라고 출력하시오

    int point = 39;

    if (point >= 60) {
        System.out.println("합격");
    }
    else if (point <= 60 && point >= 40 ) // 60점 미만, 40점 이상
    {
        System.out.println("불합격 ");
    }
    else {
        System.out.println("과락");
    }
}

 

public static void main(String[] args) {

    // 문제 2
    // int point = 50;
    // 점수가 60점 미만이면 현재 점수에서 10을 더하여 저장, 점수를 출력하라

    int point = 50;
    if (point <= 60){
        point += 10;
    }
    System.out.println(point);
}
public static void main(String[] args) {
    // 문제 3
    // int typeFlag = 35;
    // 홀수면 홀수, 짝수면 짝수라고 출력하시오

    int typeFlag = 36;
    if (typeFlag % 2 == 0) {
        System.out.println("짝수");
    } else {
        System.out.println("홀수"); }
}
public static void main(String[] args) {
    // 문제 4
    // int addNumber = 56;
    // 홀수이면 현재값에서 + 30 , 짝수이면 현재 값에서 -20 한 결과를 저장하고 출력하시오

    int addNumber = 55;
    if (addNumber % 2 == 0) {
        System.out.println("짝수");
        addNumber = addNumber-20;
        System.out.println(addNumber);
    } else {
        System.out.println("홀수");
        addNumber = addNumber+30;
        System.out.println(addNumber);
    }
}
public static void main(String[] args) {
    // int typeFlag = 47;
    // 3의 배수이면서 5의 배수이면 현재 저장된 값을 출력하시오

    int typeFlag = 47;
    if (typeFlag % 3 ==0 && typeFlag % 5 == 0) {
        System.out.println(typeFlag);
    }
    else { System.out.println(" 3의 배수 && 5의 배수가 아닙니다 "); }
}
public static void main(String[] args) {
        //  문제 6
        //  골프장 벙커에 빠진 공

        //  int x = 30;
        //  int y = 24;
        //  int size = 20; // 벙커의 크기
        //  x와 y는 좌표이다.
        //  초기값을 뜻함
        //  벙커의 크기는 시작점이  x,y에서 사각형모양으로  x좌표에서 + 20만큼, y좌표에서 -20만큼 위치되어 있다.
        //  벙커 사이즈와 위치 정의
        int x = 30;
        int y = 24;
        int size = 20;
        int xx=x + size;
        int yy=y - size;

        //  현재 볼의 위치는 다음과 같고 볼의 크기는 다음과 같다.
        //  int ballx=40;
        //  int bally=34;
        //  int ballsize=3;
        //  ballx에서 + 3, bally에서 +3만큼이 볼의 크기이다.
        //  볼도 사각형모양이다
        //  공은 벙커에 빠졌는지.. 판단하는 프로그램을 작성하시오.

        int ballx = 40;
        int bally = 34;
        int ballsize = 3;

//       x(30) ~ xx(50) , yy(4) ~ y(24)
//       x <= ballx <= xx , yy <= bally+3 <= y
//       x <= ballx && ballx <= xx , yy <= bally && bally+3 <= y

        if (x <= ballx && ballx+3 <= xx
                && yy <= bally && bally+3 <= y) {
            System.out.println("벙커 안에 있다");
        }
        else {
            System.out.println("벙커 안에 없다");
        }

    }

 

 

 

 

 

 

 

반응형