본문 바로가기
Programming/Java

[Java] java.lang.Math

by AI_Wooah 2022. 3. 7.

 

레퍼런스 변수(참조변수)

자바에서는 클래스가 제공하는 필드(전역변수)나 메소드 사용 시 반드시 new를 사용해 개체를 생성해야 사용할 수 있다. 해당하는 주소를 가진 레퍼런스변수(참조변수)를 이용해 실행해야만 한다.

클래스명 레퍼런스변수명 = new 클래스명();
레퍼런스변수명.메소드명(); -> non-static 메소드일 경우 호출 방법

static 메소드의 경우 호출하기 위해서 new를 사용하지 않아도 된다.

클래스명.메소드명(); -> static 메소드인 경우에 호출 방법
클래스명.필드명; -> static 필드에 대한 접근
import java.util.Random;

public class MathTest {
	
	// java.lang.Math 클래스 테스트
	public void testMath() {
		System.out.println(Math.PI);
		
		System.out.println("-7의 절대값 : " + Math.abs(-7));
		System.out.println("-125.5의 절대값 : " + Math.abs(-125.5));
		
		// 난수 : 임의의 값, 무작위로 만들어지는 알 수 없는 값
		// Math.random() : 0.0 ~ 0.999... 까지의 난수를 실수 형태로 변환
		System.out.println("임의의 난수 : " + Math.random());
	}

1부터 100까지의 난수 구하기

public void testRandom() {
	int random = (int)(Math.random() * 100)+1;
	System.out.println(random);	
	//int random = new Random().nextInt(3) + 1;
	}

java.util.Random클래스의 nextInt()를 이용한 난수 구하기

사용자가 원하는 랜덤 범위의 값 추출하기

  1. 0~9까지의 랜덤 수
  2. 1~10까지의 랜덤 수
  3. 20~35 까지의 랜덤 수
  4. 0 또는 1
  5. byte 자료형의 최소값 ~ 최대값 범위의 랜덤 수
  6. 알파벳 A~Z 까지의 랜덤 문자

각 범위의 난수를 Math.random() 과 Random().nextInt() 두 가지 방법 모두를 이용하여 구하기

	public void practiceRandom() {

		int random1_1 = new Random().nextInt(10);
		int random1_2 = (int)(Math.random()*10);
		System.out.println(random1_1);
		System.out.println(random1_2);
		
		int random2_1 = new Random().nextInt(10) + 1;
		int random2_2 = (int)(Math.random()*10) + 1;
		System.out.println(random2_1);
		System.out.println(random2_2);
		
		int random3_1 = new Random().nextInt(16) + 20;
		int random3_2 = (int)(Math.random()*16) + 20; //16은 난수의 길이, +20은 최소값
		System.out.println(random3_1);
		System.out.println(random3_2);
		
		int random4_1 = new Random().nextInt(2);
		int random4_2 = (int)(Math.random()*10);
		System.out.println(random4_1);
		
		int random5_1 = new Random().nextInt(256)-128;
		System.out.println(random5_1);
		int random5_2 = (int)(Math.random()*256)-128;
		System.out.println(random5_2);
		
		
		int random6_1 = new Random().nextInt(26)+65;
		System.out.println((char)random6_1);
		int random6_2 = (int)(Math.random()*26)+65;
		System.out.println((char)random6_2);
		
	}
	
	
	public static void main(String[] args) {
		MathTest test = new MathTest();
		//test.testMath();
		//test.testRandom();
		test.practiceRandom();
		
	}

}

java.util.Scanner 클래스의 next(), nextLine() 테스트

next() : 공백이 없는 연속된 문자열의 값 입력 시 사용

nextLine() : 공백이 포함된 문자열 값 입력 시 사용

import java.util.Scanner;

public class ScannerTest {
	public void testScanner() {
		// java.util.Scanner 클래스의 next(), nextLine() 테스트
		// next() : 공백이 없는 연속된 문자열의 값 입력 시 사용
		// nextLine() : 공백이 포함된 문자열 값 입력 시 사용
		Scanner sc = new Scanner(System.in);
		
		System.out.println("문자열 입력 : ");
		String str = sc.next();
		
		System.out.println("str : " + str);
		
		sc.nextLine();
		
		System.out.println("정수 하나 입력 : ");
		int num = sc.nextInt();
		
		System.out.println("num : " + num);
		
		sc.nextLine();
		
		System.out.println("공백이 있는 문자열을 입력하세요 : ");
		String str2 = sc.nextLine();
		
		System.out.println("str2 : " + str2);
	}
	
	public static void main(String[] args) {
		new ScannerTest().testScanner();

	}

}
반응형

'Programming > Java' 카테고리의 다른 글

[Java] 반복문  (0) 2022.03.07
[Java] 조건문  (0) 2022.03.07
[Java] 연산자  (0) 2022.03.07
[Java] 변수(Variable)  (2) 2020.10.26
[Java] 프로그래밍 기초  (0) 2020.10.26

댓글