printf()와 Scanner 사용

이동주·2025년 3월 1일

JAVA

목록 보기
6/30

printf()

-> 콘솔로 변수값을 출력하는 형태
-> ex)
printf("이름: %s", "이동주");
printf("나이: %d", 26);
-> 한 줄에 값이 2개 이상일 경우
printf("이름: %s, 나이: %d", "이동주", 26);

printf 형식 문자열 종류

  1. %d : 정수 출력
  2. %f : 실수 출력
  3. %s : 문자열 출력
  4. %ad(f/s) : 왼쪽에 a만큼 공백 넣기
  5. %-ad(f/s) : 오른쪽에 a만큼 공백 넣기
  6. %0ad(f/s) : 전체 자리수 a만큼의 정수(다른 타입도 가능)에서 왼쪽에 남은 빈자리 수 만큼 0을 채워넣기
  7. %.bf : 소수점 b자리 만큼 결과값 도출 (반올림됨)
  8. %a.bf : 정수 + 소수 전체 자리수 a만큼의 수에서 소수점 b자리만큼 나타내고, 남은 왼쪽 빈자리에 공백이 채워짐
  9. %-a.bf : 정수 + 소수 전체 자리수 a만큼의 수에서 소수점 b자리만큼 나타내고, 남은 오른쪽 빈자리에 공백이 채워짐
package ch02.sec12;

public class PrintfExam {
	public static void main(String[] args) {
		System.out.printf("이동주는 %d살\n", 26); 
        //%d는 정수 형식 문자열, \n은 줄변환
		System.out.printf("이동주는 %5d살\n", 26); 
        //%5d는 왼쪽에 공백 5칸 채워넣는 것
		System.out.printf("이동주는 %-5d살\n", 26); 
        //%-5d는 오른쪽에 공백 5칸 채워넣는 것
		System.out.printf("이동주는 %05d살\n", 26); 
        //%05d는 왼쪽 빈자리에 0을 채움 (수의 자리수가 3자리수면 %05d는 0을 2칸만 채움)
		
		double area = 3.14159 * 10 * 10;
		System.out.printf("반지름이 %d인 원의 넓이 = %10.3f\n", 10, area); 
        //%10.3f : 전체 자리수:10, 소수점 3자리까지 나타냄, 숫자 이외의 빈자리는 공백처리
		
		int age = 26;
		String name = "이동주";
		String job = "개백수";
		System.out.printf("%5d | %-10s | %10s\n", age, name, job); 
        // 결과값:     26 | 이동주           |           개백수
	}
}

Scanner

-> 키보드를 통해 데이터를 직접 입력받기 위해 사용하는 객체 및 변수
-> Scanner 객체를 사용하기 위해서는 class 중괄호 밖에
import java.util.Scanner; 구문을 통해 Scanner 객체를 받아야함

-> 생성 구문 : Scanner sc(변수) = new Scanner(System.in);
-> 입력 값 받기 : String input(변수) = sc(Scanner 변수).nextLine();
-> nextLine의 경우 String의 형태로 입력받음
-> nextInt와 같이 다른 형태로 입력 받을 수도 있음

-> nextLine으로 받은 값은 String의 형변환 구문을 통해 타입 변환 가능

package ch02.sec13;

import java.util.Scanner; 
//java.util.Scanner에서 객체를 가지고 옴

public class ScannerExam{
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in); 
        // Scanner 변수 선언 및 객체 생성으로 Scanner 사용 가능
		
		System.out.print("x값 입력: ");
		String sx = sc.nextLine(); 
        // 한 줄에 받은 x값을 sx 변수에 입력하기 (nextLine은 무조건 String에만 저장 가능)
		int x = Integer.parseInt(sx); 
        // String 변수값의 sx값을 int 값으로 변환
		
		System.out.print("y값 입력: ");
		String sy = sc.nextLine(); 
        // 한 줄에 받은 y값을 sy 변수에 입력하기 (nextLine은 무조건 String에만 저장 가능)
		int y = Integer.parseInt(sy); 
        // String 변수값의 sy값을 int 값으로 변환
		
		int result = x + y;
		System.out.println(x+y);
		
	}

}
profile
끄작끄작

0개의 댓글