기본 정보

- IO : Input / Output (입출력)
- Stream : Java에서 데이터를 주고 받기 위한 통로
                : 모든 IO 에서는 Stream을 통해서 한다
                : 표준 입출력을 제외한 모든 IO에서는 Stream 을 직접 만들어야 한다 

 

표준 입출력 -1

- System.in : 표준 입력 스트림 (= 객체)
                     : 버퍼(inputStream)을 사용하기 때문에 main 메소드에 IOException을 필수로 throw 해야함 

 

public class Test01 {

	public static void main(String[] args) throws IOException {
    	System.out.print("정수 입력 : ");
	
		int su = 0;
		
		while(true) {
			
			int a = System.in.read();

			su *= 10;	
			su += (a - 48);	
			
			System.out.println(a);
			
		}
	}
}

 

- 위 예시에서도 보는 보는 것 처럼 'System.in' 을 쓰기 위해선 부수적인 것들이 많이 필요하기 때문에 잘 사용되지 않음.

- 이를 편리하게 사용하기 위해 'Scanner' 를 이용

 

public class Test01 {

	public static void main(String[] args){
 
 	Scanner sc = new Scanner(System.in);
 	
    // 데이터 입력받는 법 1.
    System.out.print("나이 입력 : ");
	int age = sc.nextInt();
    
    // 데이터 입력받는 법 2.
 	sc.nextLine();
    System.out.print("이름 입력 : ");
    String name = sc.nextLine();
    
    System.out.println("나이 : " + age + "살");
	System.out.println("이름 : " + name);
    }
}

 

표준 입출력 -2

- System.out : 표준 출력 스트림 (= 객체)

 

// 제어문자

// \n (Line Feed , New Line)
// - 커서를 다음줄로 이동시키는 제어문자
System.out.println("a\nb");

// \t (Horizontal Tab)
// - 커서를 TAB 크기 만큼 이동시키는 제어문자
System.out.println("이름\t : 김동은");				// \t 사용
System.out.println("전화번호\t : 010-1234-5678");		// \t 사용
System.out.println("이름 : 김동은");				// \t 미사용
System.out.println("전화번호 : 010-1234-5678");		// \t 미사용

- 제어문자는 예시 외에도 다양한 기능들이 많으니 찾아보면 됨

 

 


 

 

문제 

* 답은 하단 스크롤

앞의 예제를 참고하시어 사용자에게 입력을 받아 다음을 계산하시오

(결과 화면)

자바 시험 점수 입력하세요
95

파이썬 시험 점수 입력하세요
80

이름을 입력하세요
홍길동

============================

홍길동님의 성적 합계 = 175점, 평균 = 87.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

정답 

 

public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		
		System.out.print("자바 점수 입력 : ");
		int java = sc.nextInt();
		
		System.out.print("파이썬 점수 입력 : ");
		int python = sc.nextInt();
		
		sc.nextLine();		// 버퍼에 들어온 데이터를 출력하기 위해
		
		System.out.print("이름 입력 : ");
		String name = sc.nextLine();
		
		System.out.println("=== 출력 방법 1 ===");

		System.out.println(name + "님의 성적 합계 = " + (java + python) + "점, 평균 = " + (double)(java + python)/2 + "점");

		System.out.println("=== 출력 방법 2 ===");

		// 성적 합계와 평균의 변수를 정의 후, 해당 변수만 출력할 수도 있음
		// - 해당 변수(java, python)는 위에서 먼저 정의를 한 후, 하단부에서 사용해야 한다
		int sum = java + python;
		double ave = sum/2.0;
		
		System.out.println(name + "님의 성적 합계 = " + sum + "점, 평균 = " + ave + "점");
		
		// Stream이 사용되면, 종료를 시켜줘야 함, 메모리 사용 효율을 위해서. (필수는 아님)
		sc.close();
	}

* sc.nextLine() 을 사용하는 이유를 구글링 해본 결과, 버퍼에 들어온 데이터를 출력할 때 사용하는 용도라고 봤는데 정확하진 않아서 다시 찾아볼 예정이다

'IT 언어 > Java' 카테고리의 다른 글

[Java] 반복문 문제 --*Q/A  (0) 2023.12.01
[Java] 랜덤 Math.radom() --*Q/A  (2) 2023.11.27
[Java] 제어문 (조건문, 선택문, 반복문) --*Q/A  (0) 2023.11.27
[Java] 정수와 실수  (2) 2023.11.23
[Java] 자료형과 변수  (0) 2023.11.23

+ Recent posts