[Java]콘솔 입출력(Console Input/Output)

수경·2023년 8월 4일
0
post-thumbnail

콘솔 입출력, Console Input Output

  • 기본 입력 장치 : 키보드
  • 기본 출력 장치 : 모니터

콘솔 출력

1. System.out.println(값)

  • print line
  • 값을 줄단위로 출력한 뒤 엔터를 친다.
		System.out.println(10);
		System.out.println(3.14);
		System.out.println('a');
		System.out.println("문자열");
		System.out.println(true);

10
3.14
a
문자열
true

2. System.out.print(값)

  • print
  • 값만 출력
		System.out.print(10);
		System.out.print(3.14);
		System.out.print('a');

103.14a

3. System.out.printf(값)

  • print format
  • 형식 문자를 제공하여 편리하고, 가독성 있다.
    1) %s : String
    2) %d : Decimal(모든 정수) > byte, short, int, long
    3) %f : Float(모든 실수) > float, double
    4) %c : Char
    5) %b : Boolean

확장 기능

1) %숫자s, %숫자d...

  • 출력할 너비를 지정한다.
  • (+) : 우측정렬 / (-) : 좌측정렬
		int num = 123;
		System.out.printf("[%d]\n", num);
		System.out.printf("[%10d]\n", num);	//10칸을 확보하고, 그안에서 데이터를 (우측정렬)출력
		System.out.printf("[%-10d]\n", num);	//10칸을 확보하고, 그안에서 데이터를 (좌측정렬)출력
		System.out.printf("[%2d]\n", num);

[123]
[ 123]
[123 ]
[123]

2) %.숫자f

  • 소수점 이하 자릿수 지정
  • %f > 소수이하 6자리 강제 출력
		double num2 = 3.15;
		System.out.printf("%f\n", num2);
		System.out.printf("%.2f\n", num2);
		System.out.printf("%.1f\n", num2); //자동 반올림됨
		System.out.printf("%.0f\n", num2);

3.150000
3.15
3.2
3

3) %,d %,f

  • 자릿수 표기(천단위 표기)
		//자릿수 표기
		int price = 1234567;
		System.out.printf("금액: %d원\n", price);
		System.out.printf("금액: %,d원\n", price);

금액: 1234567원
금액: 1,234,567원

확장 기능 종합

		//천단위 + 소수이하 2자리 + 전체너비(20자리 + 우측정렬)
		double num3 = 1234567.89012345;
		System.out.printf("[%f]\n",num3);
		System.out.printf("[%,20.2f]\n",num3);	//위치 주의

[1234567.890123]
[ 1,234,567.89]

콘솔 입력

1. System.in.read()

  • read() 메소드 1회 당 문자 1개 입력받는다.
  • main에 "throws Exception" 기재하여 사용한다.
public static void main(String[] args) throws Exception {
//		요구사항) 사용자에게 문자 1개를 입력 받아 화면에 출력하시오
//		1. 안내 메시지 출력
//		2. 키 입력
//		3. 키를 화면에 출력
		
//		1.
		System.out.print("문자를 입력하세요 : ");
        
//		2. 입력대기 상태 > "블럭 걸렸다."
		int code = System.in.read();
        
//		3.
		System.out.println("출력 : " + code);
		System.out.printf("출력 : %c\n", code);
		
		code = System.in.read();
		
		System.out.println("출력 : " + code);
		System.out.printf("출력 : %c\n", code);
		
		code = System.in.read();
		
		System.out.println("출력 : " + code);
		System.out.printf("출력 : %c\n", code);
		
		code = System.in.read();
		
		System.out.println("출력 : " + code);
		System.out.printf("출력 : %c\n", code);
		System.out.println("프로그램 종료");
	}

문자를 입력하세요 : ab
출력 : 97
출력 : a
출력 : 98
출력 : b
출력 : 13
출력 :
출력 : 10
출력 :


프로그램 종료

2. BufferedReader 클래스

  • readLine() : 입력 버퍼에서 처음부터 ~ 엔터(\r\n)를 만나기 전까지 모두 읽어오는 메소드
  • 엔터는 자동으로 삭제한다.
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
 //		요구사항) 숫자 2개 입력 > + 연산 > 연산 과정과 결과를 모두 출력
//		숫자1: 5
//		숫자2: 3
//		5 + 3 = 8
		
		System.out.print("첫번째 숫자 입력 : ");
		String input1 = reader.readLine();
		
		System.out.print("두번째 숫자 입력 : ");
		String input2 = reader.readLine();
		
		int inputNum1 = Integer.parseInt(input1);
		int inputNum2 = Integer.parseInt(input2);
		
		System.out.printf("%d + %d = %d\n", inputNum1, inputNum2, inputNum1+inputNum2);

첫번째 숫자 입력 : 2
두번째 숫자 입력 : 3
2 + 3 = 5

3. Scanner 클래스

  • java.util.Scanner > import 필수
import java.util.Scanner;
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);	
        
        //숫자 2개 입력하여 연산
		System.out.print("첫번째 숫자: ");
		double num1 = scan.nextDouble();
		
		System.out.print("두번째 숫자: ");
		double num2 = scan.nextDouble();
		
		System.out.printf("%.1f + %.1f = %.1f", num1, num2, num1+num2);
    }

첫번째 숫자: 1.5
두번째 숫자: 2.1
1.5 + 2.1 = 3.6

profile
웹백엔드개발자를 꿈꾸는

0개의 댓글