국비/Java

[02-3] Java 출력메소드(println, print, printf), 스캐너 Scanner

박머루 2022. 4. 8. 21:02
❗출력메소드 (println, print, printf)
1. System.out.println(); => 출력, 줄바꿈O

2. System.out.printl(); => 출력, 줄바꿈X

3. System.out.printf("출력하고자 하는 데이터 %형식", 변수 등); => f는 format, 줄바꿈X
System.out.printf(format, args); =>구멍의 수와 매꿀 변수의 수, 순서, 종류가 명확해야 한다!

「형식」
%d : 정수형, %o : 8진수, %x : 16진수
%5d : 5칸을 확보하고 오른쪽 정렬
%-5d : 5칸을 확보하고 왼쪽 정렬

%c : 문자, %C : 대문자
%s : 문자열, %S : 문자열 대문자

%f : 실수(소수점 아래 6자리), %e : 지수 형태 표현, %g : 대입 값 그대로
%2f : 소수점 아래 2자리까지만 표시

%A : 16진수 실수

%b : 논리형
❗escape 문자
\t : tab, tab 공간만큼 띄어쓰기
\n : 개행
\\ : \(역슬래쉬)
\' : 작은따옴펴
\" : 큰따옴표
\u : 유니코드
System.out.printf("isTrue의 값은 %b 입니다.\n", isTrue);
		System.out.printf("isFalse의 값은 %b 입니다.\n", isFalse);
		System.out.println("쌍따옴표는 \"입니다");
		// %b : true, false 논리형 변수를 담을 수 있게 뚫어주는 구멍
	
		System.out.println("개행은 \\n을 사용합니다.");
		// \n : 개행
		
		System.out.printf("sNum의 값은 %d입니다.\niNum의 값은 %d입니다.\n", sNum, iNum);
		// %d : 정수형 (byte, short, int, long) 변수를 담을 수 있게 뚫어주는 구멍
		
		System.out.printf("fnum : %.2f\ndNum : %f\n",fNum,dNum);
		// %f : 실수형 (float, double) 변수를 담을 수 있게 뚫어주는 구멍
		// 소수점 아래 7번째에서 반올림되어 6번째까지만 출력이 되는 형식
		// %.2f => 소수점 아래 3번째 자리에서 반올림되어 2번째 자리까지만 출력이 되는 형식

❗Scanner 스캐너
* System.out > 출력
* 키보드로부터 사용자의 입력 값을 받으려면?
* System.in
* 자바에서 이미 재공하고 있는 java.util.Scanner 클래스 이용
* Scanner 클래스 안에 있는 메소드들을 호출해서 사용!

* 사용자가 입력한 값을 문자열로 받아오는 메소드
* nextLine(), next()

sc.next() : 사용자가 입력한 값 중 공백이 있을 경우, 공백 이전까지만 입력을 받음
sc.nextLine() : 사용자가 입력한 값 중 공백에 무관하게 개행 문자를 만나기 전까지 한 문장을 다 읽어옴
sc.nextLine() : 버퍼에서 엔터 이전까지의 모든 값을 가져온 후 엔터를 비워주는 역할
sc.nextInt(); 정수형
sc.nextDouble(); 실수형
package com.ullebulle.variable;

import java.util.Scanner; // 1단계 import

public class B_KeyboardInput {
	public void inputTest() {
		Scanner sc = new Scanner(System.in);
		// System.in : 입력받은 값들을 받아들이겠다. (byte단위로)
		// 사용자의 인적사항을 입력받아 출력해보자
		// 입력받고자 하는 내용을 먼저 질문해서 입력을 유도
		
        System.out.println("당신의 이름은 무엇입니까? : ");	

		String name = sc.next();
		System.out.println("안녕하세요!" + name + "님!");
		
		System.out.println("당신의 나이는 몇살입니까?");
        
		int age = sc.nextInt();
		System.out.println("당신의 나이는 " + age + "살 입니다");
		
		System.out.println("당신의 키는 어떻게 되세요?(소수점 첫째자리까지 입력해주세요)");
        
		double height = sc.nextDouble();
		System.out.println("당신의 키는 " + height + "입니다.");
		
		sc.nextLine(); // 엔터 비워주기
        // 엔터를 비워주지 않으면
        // height를 입력할 때 입력 된 \n이 버퍼에 남아서
        // 다음 address를 입력하는 sc.nextLine() 메소드에서 \n 만 읽고 끝나버린다.
        
		System.out.println("주소가 어떻게 되세요?");
        
		String address = sc.nextLine();
		System.out.println("주소  : " + address);	
	}	
}