ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 항해99 2주차 JAVA 과제
    카테고리 없음 2022. 9. 23. 11:28
    • 다음 코드를 실행하면 출력 결과로 5를 기대했는데 4가 출력되었습니다. 어디에서 잘못 작성된 것일까요?
    int var1=5;
    int var2=2;
    double var3=var1/var2;
    int var4=(int)(var3*var2);
    System.out.println(var4);

    int 는 정수를 입력받고 double은 실수를 입력받는다.

    3번째줄 double var3=var1/var2; 를 보면 var3은 자료형이 double 이지만 안에 들어가는 변수의 자료형이 int이므로 var3에는 int형 정보가 저장된다. 따라서 var3에는 5/2의 값인 2.5가 아닌 5/2의 int형 값인 2가 들어오게 된다. 그래서 var3에 2.5값이 들어가게 하기 위해서는 var3 에 들어가는 변수들의 자료형이 double이거나 var3에 들어온 변수를 double로 바꿔주는 작업을 하면 된다.

    그러므로 5를 출력하기 위해서는 아래와 같이 var1,var2의 자료형을 double로 바꿔주거나

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

    var3에 들어온 정보의 자료형을 double로 바꿔주는 작업을 하면 된다.

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

     

     

    • 다음 코드를 실행했을 때 출력 결과는 무엇입니까? (증감연산자에 대해 알아보세요!)
    int x=10;
    int y=20;
    int z = (++x) + (y--);
    System.out.println(z);

    증감연산자 ++과 --

    ++는 값을 1 증가시키고 --는 값을 1 감소시키는 연산자이다.

    증감연산자는 사용된 위치에 따라 값이 변하는 순서가 바뀐다. 3번째 줄 int z = (++x) + (y--); 를 보면 x는 증감연산자가 앞에, y는 증감연산자가 뒤에 붙어있다. (++x)처럼증감연산자가 앞에 있을 경우 값을 증감시키고(x=11) 증감시킨 값(x=11)을 가져오지만 (y--)처럼 뒤에 있을 경우 기존의 값(y=20)을 가져오고 난 후 값을 증감시킨다.

    따라서 위의 코드를 실행시키면 아래와 같이 계산되어 z는 31이 출력된다.

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

     

     

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

     

    출력 코드

    int x = (int)(1+Math.random()*6);
    int y = (int)(1+Math.random()*6);
    int sum = x+y;
    
    while (sum != 5) {
        System.out.println("주사위1 : " + x + " 주사위2 : " + y + " 합 : " + sum);
        
        x = (int)(1+Math.random()*6);
        y = (int)(1+Math.random()*6);
        sum = x+y;
    }
    System.out.println("주사위1 : " + x + " 주사위2 : " + y + " 합 : " + sum);
    System.out.println("end");

    math.random함수를 이용하여 x와 y에 1~6의 숫자를 입력받고 그 값을 합친다.

    합친값이 5라면 x,y,z 값과 end라는 문구를 출력한다.

    합친 값이 5가 아니라면 while문을 이용하여 만약 합친 값이 5가 아니라면 x,y,z의 값을 출력한 후 .x와 y에 다시 새로운 값을 입력받는 과정을 반복시킨다. 만약 합친 값이 5가 된다면 반복문을 종료하고 값을 출력한다.

Designed by Tistory.