초보 프로그램 개발자

[ 1주차 ] Java - 입출력 본문

교육 일지/java

[ 1주차 ] Java - 입출력

Ji_HG 2023. 5. 8. 22:09
System.out.print()

C언어의 printf 처럼 출력을 담당하는 함수로 출력하고 싶은 문장을 넣어 주면 된다.

System.out.print("Hi Java");
// 출력 : Hi Java

print 말고 printf, println 도 있다.

 

println() 의 사용방법

System.out.println();
// println 은 안에 내용을 넣지 않아도 실행 가능하다.

println 을 아무것도 입력하지 않고 실행한다면 \n (줄바꿈) 과 같은 효과를 가지고 있고, 내용을 넣고 실행을 하여도

자동으로 \n (줄바꿈) 이 적용이 된다.

 

printf 의 사용법

int a = 10;
int b = 10;
System.out.printf("%d + %d = %d 입니다", a, b, a+b);

printf 는 C언어와 마찬가지로 int에는 %d, float에는 %f 처럼 사용할수 있다.

 

printf 말고 print, println에도 인자값을 넣어주고 싶다면,

System.out.print(a + " + " + b + " = " + (a+b) + "입니다.");

각 인자값 사이에 + 로 문장을 연결시켜주면 된다.

 

BufferedReader

사용자로부터 입력을 받는 방법으로는 두가지를 배웠다.

첫번째로 BufferedReader

package bbs;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Test {

	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String str = "";
		int a = 0;
		str = br.readLine();
		a = Integer.parseInt(br.readLine());
	}
}

br.readLine()은 String 형으로 반환되기 때문에 int, float...에 입력을 받기 위해서는 해당 타입으로 변환시켜줘야하고

위의 예시를 작성하면 br.readLine() 에 빨간줄로 오류가 생긴다.

이 오류를 해결하기 위해서는 함수명 뒤에 Exception 코드를 적어주어야 한다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {

	public static void main(String[] args) throws IOException { // IOExciption 코드 추가
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String str = "";
		int a = 0;
		str = br.readLine();
		a = Integer.parseInt(br.readLine());
	}

}
 

 

Scanner

Scanner 코드는 IOException 코드를 추가할 필요가 없고, 한번에 여러 입력을 받을 수 있다.

package bbs;

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str;
		int a;
		float b;
		long c;
		double d;
		// 입력을 할시엔 공백으로 구분을 해주어야 한다.
		str = sc.next();
		a = sc.nextInt();
		b = sc.nextFloat();
		c = sc.nextLong();
		d = sc.nextDouble();
	}
}

입력을 할 때 Scanner클래스가 알아서 공백으로 다음 입력을 구분하며 next() 내부함수로 받아올 수 있다.