[JAVA] 연산자 활용과 난수 구하기, 반복문 지정하여 탈출하기

2023. 11. 23. 20:15프로그래밍 언어/Java

1. 소수형 반올림 구현

class Operator1 {
	public static void main(String args []) {
    	double pi = 3.141592
        double shortPi = (int)(pi * 1000 + 0.5) / 1000.0
        
        System.out.println(shortPi) //실행 결과 3.142
    }
}

위의 예시처럼 반올림을 구현할 수 있다. Math.round()를 사용해서도 간단히 반올림을 할 수 있다. round() 함수는 매개변수로 받은 값을 소수점 첫째 자리에서 반올림하므로 위 예제처럼 소수점 네 자리에서 반올림하려면 Math.round(pi * 1000) / 1000.0;과 같이 사용하면 된다.


2. 쉬프트 연산의 쓰임새

 a << b 연산은 a의 2진수를 왼쪽으로 b번 이동시키고, >> 연산자는 오른쪽으로 이동시킨다. 이 연산은 매우 빠른 시간으로 2^n을 곱하거나 나눌 때 많이 사용한다. 아래의 내용만 기억해 두자.

 

x << n은 x * 2^n이고 x >> n은 x / 2^n이다.


3. 조건 연산자? :

삼항 연산자라고도 불리는? : 연산자는 result = (x > y)? x : y ; 이런 식으로 사용한다. 괄호 안의 조건식이 참이면 x를 반환하고 거짓이면 y를 반환하는 연산자이다.


4. 난수 구하기

1과 3 사이의 정수 난수를 구해보자. 기본적으로 Math.random() 메서드를 사용하는데, 이 메서드의 반환값은 0.0과 1.0 사이 범위의 무작위 double값을 반환한다. 0.0은 범위에 포함되고, 1.0은 포함되지 않는다.

  1. 각 변에 3을 곱한다. 
    0.0 <= Math.radom() * 3 < 3.0
  2. 각 변을 int형으로 변환한다.
    0 <= (int)(Math.radom() * 3) < 3
  3. 각 변에 1을 더한다.
    1 <= (int)(Math.radom() * 3) + 1 < 4

5. 이름 붙은 반복문

break문은 근접한 단 하나의 반복문만 벗어날 수 있다. 여러 개의 반복문이 중첩된 경우 상당히 귀찮은 과정을 거쳐 break 해야 하는 경우가 많은데 반복문과 break, continue에 이름을 붙여줌으로써 원하는 반복문을 중단시킬 수 있다. 바로 예제로 보자.

public class Flow1 {
    public static void main(String args[]) {
      Loop1 : for(int i=2; i<8;i++){
                for(int j=0; j<8; j++){
                    if(j==5) 
                        break Loop1;
//                      break;
//                      continue Loop1;
//                      continue;
                    System.out.println(i + "*" + j + "=" + i*j);
                }
      }
    }
}

위 예제처럼 j가 5일 때 Loop1이라는 이름이 붙은 반복문을 벗어남으로써 i의 값이 2지만 모든 for문이 종료되게 할 수 있다. continue Loop1;도 가능하므로 직접 해보자.