티스토리 뷰

728x90

핵심 키워드

  • System.out.println(), System.out.print(), System.out.println(), System.in.read(), Scanner

핵심 포인트

  • 프로그래밍 언어에는 시스템 표준 출력장치와, 표준 입력 장치 이해
    • 표준 출력 장치 > 모니터
    • 표준 입력 장치 > 키보드

 

System.out

  • 시스템의 표준 출력 장치로 출력
System.out.println("출력 내용");

System.in

  • 시스템의 표준 입력 장치에서 사용

 

모니터로 변수 값 출력하기

Println() 메소드

  • 괄호 안에 리터럴 넣으면 그대로 출력/변수 넣으면 저장된 값 출력

메소드의미

println(내용) 괄호 안의 내용을 출력하고 행을 바꿔라
print(내용) 괄호 안의 내용을 출력만 해라
print(”형식 문자열”, 값1, 값2, …); 괄호 안의 첫 번째 문자열 형식대로 내용을 출력해라

 

Printf() 메소드

  • 개발자가 원하는 형식화된 문자열 (format string) 출력 (전체 출력 자리수 및 소수 자릿수 제한)
System.out.printf("이름: %S", "감자바"); => 이름: 감자바
System.out.printf("나이: %d", 25); => 나이: 25

 

순번(argument_index$)

형식 문자열에 포함될 값 2개 이상인 경우, 값의 순번 표시해야 한다.

System.out.print("이름: %1$s, 나이: %2$d", "감자바", 25); => 이름: 감자바, 나이: 25
package sec04.exam01;

public class PrintfExample {

	public static void main(String[] args) {

		int value = 123;
		System.out.printf("상품 가격: %d원\\n", value);
		System.out.printf("상품 가격: %6d원\\n", value);
		System.out.printf("상품 가격: %-6d원\\n", value);
		System.out.printf("상품 가격: %06d원\\n", value);
		
		double area = 3.14159 * 10 * 10;
		System.out.printf("반지름이 %d인 원의 넓이: %10.2f\\n", 10, area);

		String name = "홍길동";
		String job = "도적";
		
		System.out.printf("%6d | %-10s | %10s\\n", 1, name, job);
	}
}

 

키코드에서 입력된 내용을 변수에 저장하기

키코드 (KeyCode)

  • 키보드에서 키를 입력할 때 프로그램에서 숫자로 된 키코드를 읽음
  • System.in의 read() 사용
  • 얻은 키코드는 대입 연산자 사용하여 Int 변수에 저장
package sec04.exam02;

public class keyCodeExample {

	public static void main(String[] args) throws Exception {
		
		int keyCode;
		
		keyCode = System.in.read();
		//read라는 메소드를 통해서 keyCode 값 읽는데, 만약 문제가 발생하면 에러 발생하면 throws Exceptio으로 예외처리
		System.out.println("keyCode: " + keyCode);
		System.out.println("keyCode: " + keyCode);
	}
}
  • 콘솔창에서 A를 입력후 엔터치면 키코드가 숫자를 나타냄 (빨간버튼 종료 = 프로그램 끝났다!) → 신기한 기능

 

  • q를 입력하면 반복 종료
package sec04.exam04;

	public class QStopExample {

		public static void main(String[] args) throws Exception {
		
			int keyCode;
		
			while(true) {
				keyCode = System.in.read();
				System.out.println("KeyCode: " + keyCode);
				if(keyCode == 113) {
					break; //keycode가 113일 경우 while 반복을 중지함 
				}
		}
			System.out.println("종료");
	}
}

🟡 코드 뜯기

  • if(keyCode == 113) → 괄호 안이 true가 되면 중괄호 블록 { }을 실행한다.
  • keycode == 113은 key code 변수값이 113과 동일한지를 검사
  • 동일하다면 true, 동일하지 않다면 false가 된다.

System.in.read()의 단점

  • 키코드를 하나씩 읽기 때문에 2개 이상의 키가 조합된 한글을 읽을 수 없음
  • 키보드로부터 입력된 내용을 통 문자열로 읽지 못 함.

⭐︎ 이러한 단점 해결을 위해, Scanner 클래스 사용

  • Java가 제공하는 Scanner 클래스를 이용하면 입력된 통문자열을 읽을 수 있음
  • Scanner scanner = new Scanner (System.in);
    • Scanner로 scanner라는 변수를 선언 → new라는 연산자로 Scanner라는 객체 생성 → Scanner는 통문자열을 만들어 줌
package sec04.exam05;

import java.util.*;
**//scanner 사용 시 java.util.* 호출해줘야함**

public class ScannerExample {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		
		String inputData;
		
		while(true) {
			inputData = scanner.nextLine();
			System.out.println("입력된 문자열: " + inputData + "\\"");
			if(inputData.equals("q")) {
			break;
		}
			System.out.println("종료");				
		}
	}
}

🟡 코드 뜯기

  1. Scanner scanner는 Scanner 타입의 변수 scanner를 선언
  2. new Scanner(System.in)은 시스템의 입력장치로부터 읽는 Scanner를 생성하는 코드
  3. 생성된 Scanner는 scanner 변수에 저장했다가, 언제든지 키보드에서 읽고 싶을 때 scanner.nextLine(); 메소드 실행하면 됨
  4. import문
    1. Scanner가 java.util 패키지에 있다는 것을 컴파일러에게 알려주는 역할을 한다.
    2. 이 코드가 생략되면, Scanne를 찾을 수 없다는 컴파일 에러가 발생한다.

기본 타입의 값 비교와 문자열 비교

  • 기본타입 → (==)
    • byte, short, int, long, float, double, boolean
  • 문자열 → (equals()) 사용
    • String

문자열의 비교는 equals() 메소드 사용

boolean result = inputData.equals("비교문자열");
**//저장된 문자열과, 비교문자열 비교 -> 같으면 true, 다르면 false**

🟡 코드 뜯기

  1. 비교
    1. inputData(저장된 문자열) ↔ “비교문자열”
  2. 결과
    1. 같으면 result는 true, 다르면 false
String str1 = "java";
boolean result1 = str.equals("java"); **//true**
boolean result2 = str.equals("Java"); **//false**
  • Scanner 사용 시 java.util. 호출해야 함*

끝내기 핵심

  • System.out.println()
    • 괄호에 주어진 매개값을 모니터로 출력하고 개행
  • System.out.print()
    • 괄호에 주어진 매개값을 모니터로 출력만 하고 개행하지 않는다
  • System.out.print()
    • 괄호에 주어진 형식대로 출력한다
  • System.in.read()
    • 키보드에서 입력된 키코드를 읽는다
  • Scanner
    • 키보드로부터 입력된 내용을 통 문자열로 쉽게 읽기 위해 Scanner를 사용

❓궁금한 점

  • keyCode를 왜 쓸까
    • 프로그램에서 입력을 더 쉽게 처리할 수있다. => 각 키의 고유한 숫자코드를 식별
    • 교차 플랫폼 호환 가능. => 키 코드는 플랫폼 독립적임! 다양한 운영체제와 하드웨어 구성에서 일관되게 작동
    • 특수 키 처리에 용이 => 기능키(f1,f2 등), 화살표 키, 제어키 (Ctrl,Alt,Shift) 등 특수키를 처리하는데에 유용
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함