Java-random & equals & nanotime

수현·2022년 9월 20일

Java

목록 보기
5/23

■random

double num = 0;
for(int i = 0; i<10; i++) {
	num = Math.random();
    System.out.println(num);
}

Math.random( );은 0.0보다 크고 1.0보다 작은 값을 랜덤으로 출력
이 값은 소수점으로 나오기 때문에 num을 double로 선언

num = (int)(Math.random()*45)+1;

정수로 출력하고 싶으면 어떠한 수를 곱한 후 int로 강제변환 시행(+num을 int로 선언)
0이 나오는 경우 배제하려면 +1

<문제>

1~10까지 숫자 중에 3개의 숫자를 뽑고 그 중 가장 큰 수를 출력하시오.

int num = 0;
		int one = 0;
		int two = 0;
		int three = 0;
		
		for(;;) {
			num = (int)(Math.random()*10)+1;
			
			if(one == 0) {
				one = num;
			} else if(two==0 && num!=one) {
				two = num;
			} else if(three==0 && num!=one && num!= two) {
				three = num;
				break;
			}	
		}
		
		System.out.println("첫번째 수는 "+one);
		System.out.println("두번째 수는 "+two);
		System.out.println("세번째 수는 "+three);
		
		int result = 0;
		if(one>two && one>three) {
			result = one;
		} else if(two>one && two>three) {
			result = two;
		} else if(three>one && three>two) {
			result = three;
		}
		
		System.out.println("셋 중에 가장 큰 수는 "+result+"입니다.");

■equals

Scanner scan = new Scanner(System.in);
		String inputData = "";
		System.out.println("값을 입력하시오.");
		
		for(;;) {
			inputData = scan.nextLine();
			if(inputData.equals("김준석")) {
				System.out.println("휴먼교육센터 선생");
			} else if(inputData.equals("박준석")) {
				System.out.println("잘 모르겠음.");
			} else if(inputData.equals("이준석")) {
				System.out.println("국민의힘 당대표");
			} else {
				System.out.println("다시 입력하세요!");
			}
		}

equals( );를 사용하여 문자열타입 변수의 데이터를 비교
cf) ==은 숫자 비교, equals의 반대는 if(!___.equls("문자열"))

■nanotime

long startNano = System.nanoTime();
System.out.println(startNano);
~어떤 코드~
long endNano = System.nanoTime();
System.out.println(endNano);

System.out.println((endNano-startNano)/1000000000+"초 걸립니다.")

특정 메서드를 실행할 때 걸리는 시간을 측정하기 위해 사용(성능체크)
시간을 long타입의 나노세컨드(10억분의1)로 반환
나노에서 바꾸어줘야하기 때문에 10억으로 나눔

profile
실패와 성장을 기록합니다 🎞️

0개의 댓글