관리자 글쓰기
2022년 9월 23일 금요일 개발일지
2022. 9. 23. 09:36 - DoosanBaek

오전 9시 ~ 오전 9시 30분 기본 언어 공부 발제 회의 참석

오전 9시 30분~ 10시30분

기본 언어 Java 환경 셋팅 

java 환경설정 , java 설치, intellij 설정, Ultimate 버전으로 구매, intellij 설치, 폰트 변경, D2coding 폰트설치 및 변경

 

Java 과제

Q. 다음 코드를 실행하면 출력 결과로 5를 기대했는데 4가 출력되었습니다. 어디서 잘못 작성된 것일까요?

int var1=5;
int var2=2;
double var3=var1/var2;
int var4=(int)(var3*var2);
System.out.println(var4);

위의 코드에서 var1 / var2 를 했을때 double var 3 은 2가 나온다.

5의 결과가 나오기 위해서는 

double var3 = (double) var1 / var 2; 

double var3 = (double) var1 / var2;

이렇게 변경하고 System.out.println(var3); 으로 출력하면 var3이 2.5가 출력되는것을 알수 있다.

public class Hello {
    public static void main(String[] args) {

        int var1 = 5;
        int var2 = 2;

        double var3 = (double) var1 / var2;

        int var4 = (int)(var3*var2);
        System.out.println(var4);
    }

}

var 3에 2.5가 들어가고 

var3*var2의 결과인 5가 var4에 들어가서

System.out.println(var4) 출력시 5가 출력되게 된다.

 

02. 다음 코드를 실행했을 때 출력 결과는 무엇입니까? ( 증감연산자에 대해 알아보세요!)

public class Question02 {
    public static void main(String[] args) {

        int x=10;
        int y=20;
        int z = (++x) + (y--);
        System.out.println(z);

    }
}

답안: 31이 출력됩니다.

03. while문과 Math.random() 메소드를 이용해서 2개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성해보세요. 눈의 합이 5가 되는 조합은 (1,4), (4,1), (2,3), (3,2)입니다.

-> while 조건문을 이용해서 무조건 true 안에 들어가도록 하고, 

public class Question03 {
    public static void main(String[] args) {
        
        while (true) {

            
            }
        }
    }

숫자 두개 저장되는 변수 num1, num2 를 선언 한다.

정수니까 int 를 붙이고 Math.random() 소수점으로 나오므로 (int) 를 붙여 int로 강제 형변환 한다.

Math.random() 소수점으로 0~1 사이를 출력하기 때문에 *6을하고

+1을 하면 1~6의 숫자가 출력된다.

int num1 = (int) (Math.random() *6) +1;

int num2 = (int) (Math.random()*6) +1;

 

 if 조건문을 사용해서 두개의 변수를 더한 값이 5가되면 break로 빠저나오게 한다.

if(num1 + num2 == 5) {

                System.out.println("끝");
                break ;

            }

 

답안 코드: 


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

            int num1 = (int) (Math.random() *6) + 1;
            int num2 = (int) (Math.random() *6) + 1;
            
            System.out.println("(" + num1 + "," + num2 + ")");

            if(num1 + num2 == 5) {

                System.out.println("끝");
                break ;

            }
        }
    }

}