Input, Output

박주현·2022년 9월 27일
0

국비 공부

목록 보기
4/44

2022-09-27

  • 출력하는 키워드
    System.out에 포함되어 있다

printf() : print format : format에 출력하고 줄 안바꿈
println() : print line : 출력하고 줄 바꿈.
print() : print : 그냥 출력

문자열 보간 형식도 있다.

import java.text.MessageFormat;

public class SimpleTesting{
    public static void main(String[] args) {
        String site_name = "DelfStack";
        String type = "'How to Guide'";
        String message = MessageFormat.format("{0} is a {1} Portal", site_name, type);
        System.out.println(message);
    }
}

출력:


DelfStack is a 'How to Guide' Portal
		int i = 97;
		String s = "Java";
		double f = 3.14f;
        
		System.out.printf("%d\n", i);		// 10진수 출력
		System.out.printf("%o\n", i);		// 8진수 출력
		System.out.printf("%x\n", i);		// 16진수 출력
		System.out.printf("%c\n", i);		// Char 출력
		System.out.printf("%5d\n", i);		// 공백 5자리 넣음 (수 는 오른쪽부터 채워짐 왼쪽부터 채우려면 -부호 붙여 사용
		System.out.printf("%05d\n", i);		// 5자리 빈칸 출력, 빈자리 공백
		System.out.printf("%s\n", s);		//
		System.out.printf("%5s\n", s);
		System.out.printf("%-5s\n", s);
		System.out.printf("%f\n", f);
		System.out.printf("%e\n", f);
		System.out.printf("%4.1f\n", f);
		System.out.printf("%04.1f\n", f);
		System.out.printf("%-4.1f\n", f);

		System.out.printf("\n");
		System.out.printf("%22.99f\n", Math.PI);

출력:

97
141
61
a
   97
00097
Java
 Java
Java 
3.140000
3.140000e+00
 3.1
03.1
3.1 

3.141592653589793000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Scanner Class

  • Scanner 클래스의 인스턴스 생성은 데이터를 뽑아 올 대상과의 연결을 의미. 연결후에는 데이터 스캔 가능!

  • Scanner class 사용 방법
    프로그램 첫 행에 다음을 추가해 Scanner class의 경로 이름을 컴파일러에 알린다.

// import 해줌
import java.util.Scanner;

키보드로 데이터를 입력 받기 위해 System.in 객체와 연결된 Scanner 객체를 생성한다.

// 객체 생성.
Scanner sca = new Scanner(System.in);
  • 메서드 / 반환타입
    next() / String

    nextByte() / byte

    nextshort() / short

    nextint() / int

    nextLong() / long

    nextFloat() / float

    nextDouble() / double

    nextLine() / String

  • Scanner.close() 의 이유
    -GarbegeCollector가 있는데 왜 close()를 해주는 거지...?
    보통 close() 메서드가 있는 클래스들은 OS로부터 자원을 할당받아 사용하는 네이티브 메소드들을 가지고 있는 경우들이 있는데 이렇게 C(?)에서 자원을 할당 받은 경우 GC가 자원을 할당 받았는지 알 수가 없다고 함.
    close() 메서드를 통해서 자원을 그만쓴다라는 것을 알리고 GC가 메모리 해제를 할 수있도록 하는 것이라고 함.

개발자가 직접 정의한 경우를 제외한 close() 메서드는 Object의 사용 중지를 알리는 역할이고 이것을 메모리 해제하는건 GC가 한다!


논리 연산자

  • 쇼트 서킷

조건식 1 && 조건식 2 -> 조건식 1이 false이면 조건식 2의 진릿값과 상관없이 결과가 무조건 false가 된다. 따라서 조건식 2의 진릿값을 조사할 필요가 없다.

조건식 1 || 조건식 2 -> 조건식 1이 true이면 조건식 2의 진릿값과 상관없이 결과가 무조건 true가 됨. 따라서 조건식 2의 진릿갑슬 조사할 필요가 없다.

0개의 댓글