✅ Scanner


System.out을 통해서 출력을 했듯이, System.in을 통해서 사용자의 입력을 받을 수 있다. 그런데 자바가 제공하는 System.in을 통해서 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 여렵다.

자바는 이런 문제를 해결하기 위해 Scanner라는 클래스를 제공한다. 이 클래스를 사용하면 사용자 입력을 매우 편리하게 받을 수 있다.

✏️ Scanner1

package scanner;

import java.util.Scanner;

public class Scanner1 {

  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.print("문자열을 입력하세요 : ");
    String str = scanner.nextLine();  // 입력을 String으로 가져온다.
    System.out.println("입력한 문자열 : " + str);

    System.out.print("정수를 입력하세요 : ");
    int intValue = scanner.nextInt();  // 입력을 int로 가져온다.
    System.out.println("입력한 정수 : " + intValue);

    System.out.print("실수를 입력하세요 : ");
    double doubleValue = scanner.nextDouble();  // 입력을 double로 가져온다.
    System.out.println("입력한 실수 : " + doubleValue);
  }
}
  • Scanner scanner = new Scanner(System.in);
    • Scanner의 기능을 사용하기 위해 new를 사용해서 Scanner를 만든다.
      ScannerSystem.in을 사용해서 사용자의 입력을 편리하게 받도록 도와준다.
    • Scanner scanner 코드는 scanner 변수를 선언하는 것이다. 이제부터 scanner 변수를 통해서 Scanner를 사용할 수 있다.
  • scanner.nextLine();
    • 엔터(\n)을 입력할 때 까지 문자를 가져온다.
  • scanner.nextInt();
    • 입력을 int형으로 가져온다. 정수 입력에 사용한다.
  • scanner.nextDouble();
    • 입력을 double형으로 가져온다. 실수 입력에 사용한다.

✏️ 출력 예시

✏️ 다른 타입 입력 시 오류

타입이 다르면 오류가 발생한다.

✅ print() 🆚 println()


다음 코드를 보면 println()이 아니라 print()를 사용한다.

System.out.print(”문자열을 입력하세요 : ”);

그 이유는 다음과 같다.

✏️ print()

System.out.print("hello");
System.out.print("world");
// 결과 : helloworld
  • 출력하고 다음 라인으로 넘기지 않는다.

✏️ println()

System.out.println("hello");
System.out.println("world");

/* 
결과 :
hello
world

*/
  • 출력하고 다음 라인으로 넘긴다.

우리가 엔터 키를 치면 (\n)이라는 문자를 남기는 것이다.

이 문자는 영어로 new line character, 한글로 줄바꿈 문자 또는 개행 문자라고 하는데, 이름 그대로 새로운 라인으로 넘기라는 뜻이다. 콘솔에서는 이 문자를 보고 다음 라인으로 넘긴다.

println()print()의 마지막에 \n을 추가한다. 따라서 다음 코드는 println()과 같다.

System.out.print("hello\n");
System.out.print("world\n");

/* 
결과 :
hello
world

*/
profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글