본문 바로가기
프로그래머 ,백준, 유튜브, 문제

java 과제

by 리승우 2022. 9. 23.

1. 데이터타입 특성문제

public class Hello {

    public static void main(String[] args) {
        int var1=5;
        int var2=2;
        double var3=var1/var2;
        int var4=(int)(var3*var2);
        System.out.println(var4);
    }
}

출력값

4

 

WHY?

1. int 5 / int2로 나누었을 경우, 2.5가 아닌 정수타입인 2가 반환됨.

2. 2 X 2는 결국 4이므로, 4출력

 

 

2. 증감연산자 특성문제

public class Hello {

    public static void main(String[] args) {
        int x=10;
        int y=20;
        int z = (++x) + (y--);
        System.out.println(z);
    }
}

출력값

31

 

WHY?

1. X는 Z를 위한 연산에 들어가기전, 전치증가를 한다. (x = 11)

2. Y는 Z를 위한 연산이 종료된 후, 후치감소를 한다. (연산종료 후 y=19)

3. 출력값은 31

 

2. 조건문 특성문제

public class question {
    public static void main(String[] args) {
        System.out.println("시작!");

        while (true) {
            int a = (int) (Math.random() * 6) + 1;
            int b = (int) (Math.random() * 6) + 1;
            if (a + b != 5) {
                System.out.println("(" + a + "," + b + ")");
                continue;
            } else {
                System.out.println("(" + a + "," + b + ")");
                System.out.println("끝!");
                break;
            }
        }
    }
}

출력값

시작!

(4,1)

끝!

 

WHY?

1. while문 실행 (정지 명령이 없으면 무한반복)

2. a,b라는 변수에 랜덤값 지정 (주사위 값)

3. if문 생성 후, a+b값이 5가 아닐 경우 다시 반복문 실행되도록 진행 (continue)

4. a+b값이 5일 경우, 그 구문을 출력하고 반복문 종료 (break)

 

 

 

댓글