Java 언어과제

최재하·2022년 11월 18일
0
  • 문제 1

    아래 코드에서 출력결과를 5로 기대했는데 4가 출력되었다 어디에서 잘못되었나?
    int var1 = 5;
     int var2 = 2;
     double var3 = var1/var2;
     int var4 = (int)(var3*var2);
     System.out.println(var4); //결과값4출력
    var3의 값은 2이다. 결과값이 5가나오려면 var3의 값이 2.5가 나와야한다.
    var1, var2 모두 int형이라 소수점이 나오지않으므로 캐스팅을해준다
    int var1 = 5;
     int var2 = 2;
     double var3 = (double)var1/var2;
     int var4 = (int)(var3*var2);
     System.out.println(var4); //결과값5출력

  • 문제 2

    다음 코드를 실행했을때 출력결과는 무엇입니까?
    int x = 10;
     int y = 20;
     int z = (++x) + (y--); //x=11 y = 20
     System.out.println(z);
    증감연산자가 피연산자 앞에있으면(++x) 다른 연산수행전에 증감연산자가 적용되고,
    증감연산자가 피연산자 뒤에있으면(y--) 다른 연산수행후에 증감연산자가 적용된다.
    위 코드에서 ++x는 11 y--는 20이므로 결과값인 z는 31이된다.

  • 문제 3

    while문과 Math.random()메소드를 이용해 2개의 주사위를 던졌을때 나오는 눈을 (눈1, 눈2)형태로 출력하고 눈의 합이 5가 아니면 계속 주사위를 던지고 합이5면 실행을 멈추는 코드를 실행하세요
    -출력 예시
    시작!
    (3,6)
    (1,4) //5
    종료!
    System.out.println("시작!");
          while (true) {
              int random1 = (int) (Math.random() * 6) + 1;
              int random2 = (int) (Math.random() * 6) + 1;
              System.out.println("(" + random1 + "," + random2 + ")");
              if (random1 + random2 == 5) {
                  System.out.println("종료!");
                  break;
              }
          }
    2개의 주사위를 Math.random()메소드를 이용해 1부터6까지 랜덤한 숫자가 나오게하고
    while문안에 if문을 넣어 두 주사위의 합이 5가 나오면 break문으로 종료합니다.

0개의 댓글