본문 바로가기

JAVA/혼자공부하는자바

[JAVA기초] 변수와 시스템 입출력(2)

728x90

키코드(KeyCode)

  • 키보드에서 키를 입력할 때 프로그램에서 숫자로 된 키코드를 읽음
  • System.inread() 사용
  • 얻은 키코드는 대입 연산자 사용하여 int 변수에 저장

A를 입력하여 65를 출력했다.

 

 

키코드를 입력할 때 A의 값인 65만 입력되는 것이 아니라 Enter의 값인 13과 10도 같이 입력이 된다.

그래서 같은 출력문을 반복하면 13과 10도 같이 출력이 된다.

 

 

위와 같이 while문을 이용하여 계속해서 입력을 받을 수 있다.

 

 

if문과 break를 추가하여 종료 기능을 만들 수 있다.

 

 

System.in.read()의 단점

  • 2개 이상의 키가 조합된 한글을 한꺼번에 읽을 수 없다.
  • 키보드로 입력된 내용을 통문자열로 읽을 수 없음

 

Scanner로 해결

자바가 제공하는 Scanner 클래스를 이용하면 입력된 통문자열을 읽을 수 있음

package sec04.exam05;

import java.util.Scanner;

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("종료");
	}

}

Scanner 클래스의 사용 예시이다.

 

 

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

 

기본 타입의 값 비교는 == 사용

int x = 5;
boolean result = (x == 5);  //true

 

 

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

//boolean result = inputData. equals("비교문자열");

String str = "java";
boolean result1 = str.equals("java");     //true
boolean result1 = str.equals("python");   //false