본문 바로가기

TIL/Java

[Java] API, Math, Scanner

API

Application Programming Interface는 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스를 뜻한다.

쉽게 말해 우리가 구현할 수 없거나 구현하기 번거로운 기능들을 JDK를 설치하면 사용할 수 있도록 제공해놓은 소스코드(클래스나 인터페이스)들을 의미한다.

더 쉽게 말해 누가 작성해놓은 소스코드이니 가져다 쓰는 방법을 학습한다는 의미이다.

모든 코드를 우리가 다 외울 수 없으니  API 문서를 별도로 제공해주고 있다.

 

java.lang.Math

Math클래스는 수학에서 자주 사용하는 상수들과 메소드들을 미리 구현해놓은 클래스이다.

API 문서에서 확인하면 Math 클래스는 모두 static으로 선언되어 있다.

-절대값출력(static메소드 호출)

		System.out.println("-7의 절대값 : " + (java.lang.Math.abs(-7)));

Math 클래스의 경우 import하지 않아도 사용할 수 있다.

java.lang패키지 하위에 있는 클래스는 import구문이 불필요하다. Ex) String, System..

워낙 자주 사용하는 패키지이기 때문에 import없이 사용 가능하게 해 놓은 것이다.

컴파일러가 import java.lang*; 이 코드를 자동으로 추가해서 컴파일 한다.

		System.out.println("-1.25의 절대값 : " + (Math.abs(-1.25)));

-난수의 활용 

Math.random()을 이용해 발생한 난수는 0부터 1전까지의 실수 범위의 난수값을 반환한다.

필요에 따라 정수 형태의 값을 원하는 범위만큼 발생시켜야 하는 경우들이 존재하는데 필요한 범위까지의 난수를 발생시켜보자.

원하는 범위의 난수를 구하는 공식 : (int) (math.random() * 구하려는 난수의 갯수) + 구하려는 난수의 최소값
		/* 0 ~ 9까지의 난수 발생 */
		int random1 = (int) (Math.random() * 10);
		System.out.println("0부터 9 사이의 난수 : " + random1);
		
		/* 1 ~ 10까지의 난수 발생 */
		int random2 = (int) (Math.random() * 10) + 1;
		System.out.println("1부터 10 사이의 난수 : " + random2);
		
		/* 10 ~ 15까지의 난수 발생 */
		int random3 = (int) (Math.random() * 6) + 10;
		System.out.println("10부터 15 사이의 난수 : " + random3);
		
		/* byte 타입이 가지는 값의 범위만큼 난수 발생 (-128 ~ 127) */
		int random4 = (int) (Math.random() * 256) - 128;
		System.out.println("-128부터 127까지의 난수 : " + random4);

Scanner

Java.unil.Scanner를 이용한 다양한 자료형 값 입력받기

-Scanner 객체 생성

		Scanner sc = new Scanner(System.in);

-자료형 별 값 입력받기 (다음 줄에 입력을 대기시키지 않기 위해 print 사용

			//문자열 입력받기
		System.out.print("이름을 입력하세요 : ");
		String name = sc.nextLine();
		System.out.println("입력하신 이름은 " + name + "입니다.");
        
      			  //정수형 값 입력받기
       		 System.out.print("나이를 입력하세요 : ");
		int age = sc.nextInt();
		System.out.println("입력하신 나이는 " + age + "입니다.");
        
        		// 실수형 값 입력 받기
		System.out.print("키를 입력해주세요 : ");
		float height = sc.nextFloat();
		System.out.println("입력하신 키는 " + height + "cm 입니다.");
		
		//nextDouble() : 입력 받은 값을 double 형으로 반환한다. 
		System.out.print("원하는 실수를 입력해주세요 : ");
		double number = sc.nextDouble();
		System.out.println("입력하신 실수는 " + number + "입니다.");
		
		//논리형 값 입력 받기 
		System.out.print("참과 거짓 중에 한 가지를 true or false로 입력해주세요 : ");
		boolean isTrue = sc.nextBoolean();
		System.out.println("입력하신 논리 값은 " + isTrue + "입니다.");
		
		//문자형 입력 받기 
		//문자를 직접 입력 받는 기능은 제공하지 않는다.
		//따라서 문자열로 입력을 받고, 입력 받은 문자에서 원하는 순번째 문자를 분리해서 사용해야 한다.
		//java.lang.String에 charAt(int index)를 사용한다.
		sc.nextLine();	
		System.out.print("아무 문자나 입력 해주세요 : ");
		char ch = sc.nextLine().charAt(9);
		System.out.println("입력하신 문자는 " + ch + "입니다.");

문자를 입력받는 기능이 없으니 char ch = sc.nextLine().charAt(index); 이 공식을 꼭 이해하자