스캐너(콘솔로 입력받기)

2023. 12. 11. 17:29자바 기초 및 세팅

  • Scanner 클래스의 특징
  1. 기본적인 데이터 타입들을 Scanner 의 메소드를 사용하여 입력받을 수 있다.

    예로 들어 100을 입력하고자 할 때, String(문자열)로 입력받고 싶으면 next() 나 nextLine() 을, int(정수)로 입력받고 싶다면 nextInt() 를 사용하여 입력받으면 알아서 해당 타입으로 입력된다.


  2. Scanner 을 사용할 시 util 패키지를 경로의 Scanner 클래스를 호출해야 한다.

    자바에서 쓰이는 대부분의 클래스는 lang 패키지가 아니라면 import 을 통해 호출해주어야 한다.
    Scanner 의 경우는 java.util 패키지에 있다

 3. 공백(띄어쓰기) 또는 개행(줄 바꿈)을 기준으로 읽는다.

Scanner 의 입력 메소드들은 대부분 공백과 개행(' ', '\t', '\r', '\n' 등등..)을 기준으로 읽는다. 이 덕분에 사용자의 편의에 따라 쉽게 입력을 받을 수 있다.

  • Scanner 사용해보기
package day2;

import java.util.Scanner;

public class ScannerEx1 {
	
	//콘솔창에서 정수, 실수, 믄자, 문자열을 입력받는 예제
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		//정수 입력받는 예제
		System.out.println("정수를 입력하세요 : ");
		int num1 = scan.nextInt();
		
		System.out.println("입력받은 정수 : " + num1);
		
		//한 단어 입력받는 예제
		//스페이스 공백 엔터등 모두 제외하고 맨 앞 한 단어만 가지고 옴
		System.out.println("한 단어를 입력하세요");
		String str1 = scan.next();
		System.out.println("입력받은 단어 : " + str1);
		
		// 실수 입력받기
		System.out.println("실수를 입력하세요 : ");
		double num2 = scan.nextFloat();
		System.out.println("입력받은 실수 : " + num2);
		
		// 한문장 입력받는 예제
		System.out.println("한 문장을 입력하세요");
		scan.nextLine();//실수 다음에 입력한 엔터를 처리
		String str2 = scan.nextLine();
		System.out.println("입력받은 문장 : " + str2);
		
		// 문자를 입력받는 예제
		System.out.println("문자를 입력하세요 : ");
		//"문자열".charAt(번지) : 번지번째에 있는 문자를 가져옴
		char ch = scan.next().charAt(0);
		System.out.println("입력받은 문자 : " + ch);
		scan.close();

	}

}

 

Scanner예제

package day2;

import java.util.Scanner;

public class testEx3 {

	public static void main(String[] args) {
		//정수를 입력받아서 0인지 양수인지, 음수인지 판별하는 코드를 작성하세요
		
		Scanner scan = new Scanner(System.in);
		
		//System.out.print("정수를 입력해주세요 : ");
		
		int num = scan.nextInt();
		
		if(num == 0) {
			System.out.println("입력받은 정수는 : "+num+"은 0입니다.");
		}
		else if(num > 0 ) {
			System.out.println("입력받은 정수는 : "+num+"은 양수 입니다.");
		}
		else if(num < 0 ) {
			System.out.println("입력받은 정수는 : "+num+"은 음수 입니다.");
		}
		scan.close();
	}

}

 

Scanner 예제2

package day2;

import java.util.Scanner;

public class ifMultiple {

	public static void main(String[] args) {
		// 정수를 입력받아 3의 배수인지 아닌지 판별하는 코드
		
		Scanner scan = new Scanner(System.in);
		
		System.out.print("정수를 입력해주세요");
		int num = scan.nextInt(); 
		if(num % 3 == 0) {
			System.out.println("입력받은 정수는 3의 배수입니다.");
		}
		else {
			System.out.println("입력받은 정수는 3의 배수가 아닙니다.");
		}
		scan.close();
	}

}

 

Scanner예제3

package day2;

import java.util.Scanner;

public class TestEx4 {

	public static void main(String[] args) {
		//성인 판별 예제
		//나이를 입력받아 나이가 20세 이상이면 성인을 출력하고
		//20세 미만이면 미성년자 출력하는 코드를 작성하시오
		Scanner scan = new Scanner(System.in);
		
		System.out.print("나이를 입력해주세요 : ");
		
		int old = scan.nextInt();
		
		System.out.println(old<20? "미성년자" : "성인");
		
		scan.close();
	}

}

 

Scanner예제4

import java.util.Scanner;

public class testEx5 {
		//
	public static void main(String[] args) {
		/*
		 * 월을 입력 받아서 입력받은 월의 계절을 출력하세요
		 * 3, 4, 5 : 봄
		 * 6, 7, 8 : 여름
		 * 9, 10, 11 : 가을
		 * 12, 1, 2 : 겨울
		 * */
		
		Scanner scan = new Scanner(System.in);
		
		System.out.print("몇월인가요? ");
		
		int num = scan.nextInt();
		
		if(num == 3 || num == 4 || num == 5) {
			System.out.println("봄");
		}
		else if(num == 6 || num == 7 || num == 8) {
			System.out.println("여름");
		}
		else if(num == 9 || num == 10 || num == 11) {
			System.out.println("가을");
		}
		else if(num == 12 || num == 1 || num == 2) {
			System.out.println("겨울");
		}
		else {
			System.out.println("13 이하의 양수를 입력해주세요");
		}
		
		//또 다른 방법
		if(num < 1 || num > 12) {
			System.out.println("13 이하의 양수를 입력해주세요");
		}
		else if(num <= 2 || num ==12) {
			System.out.println("겨울");
		}
		else if(num <= 5) {
			System.out.println("봄");
		}
		else if(num <= 8) {
			System.out.println("여름");
		}
		else {
			System.out.println("가을");
		}
	}

}

 

Scanner예제5

import java.util.Scanner;

public class TestEx6 {

	public static void main(String[] args) {
		/*
		 * 산술연산자와 두 정수를 입력받아서
		 * 산술 연산자에 맞는 연산 결과를 출력하는 코드를 작성하세요
		 * 예) 
		 * 두 정수와 연산자 입력 (예 : 1 + 2) : 1+2
		 * 1 + 2 + 3
		 * 두 정수와 연산자 입력 (예 : 1 + 2) : 1/2
		 * 1 / 2 = 0.5
		 * 두 정수와 연산자 입력 (예 : 1 + 2) : 1 ? 2
		 * ?는 산술 연산자가 아닙니다.
		 * */ 
		
		Scanner scan = new Scanner(System.in);
		
		System.out.print("정수를 입력해주세요 : ");
		int num1 = scan.nextInt();
		System.out.print("정수를 입력해주세요 : ");
		int num2 = scan.nextInt();
		System.out.print("연산자를 입력해주세요 : ");
		char str1 = scan.next().charAt(0);
		if(str1 == '+') {
			System.out.println(num1 + " " + str1+ " "  + num2 + " = " + num1+num2);
	 	}
		else if(str1 == '-') {
			System.out.println(num1 + " " + str1+ " "  + num2 + " = " + (num1 - num2));
		}
		else if(str1 == '/') {
			System.out.println(num1 + " " + str1+ " "  + num2 + " = " + num1/num2);
		}
		else if(str1 == '%') {
			System.out.println(num1 + " " + str1+ " "  + num2 + " = " + num1%num2);
		}
		else {
			System.out.println(str1+"는 연산자가 아닙니다.");
		}
		
		// 다른 방법
		
		if(str1 == '+') {
			System.out.println(num1 + " " + str1+ " "  + num2 + " = " + num1+num2);
	 	}
		else if(str1 == '-') {
			System.out.println(num1 + " " + str1+ " "  + num2 + " = " + (num1 - num2));
		}
		else if(str1 == '/') {
			System.out.println(num1 + " " + str1+ " "  + num2 + " = " + num1/num2);
		}
		else if(str1 == '%') {
			System.out.println(num1 + " " + str1+ " "  + num2 + " = " + num1%num2);
		}
		else {
			System.out.println(str1+"는 연산자가 아닙니다.");
		}
			
	}

}

 

Scanner예제6

import java.io.InputStream;
import java.util.Scanner;

public class HomeworkEx1 {

	public static void main(String[] args) {
		/*
		 * 성적을 입력받아 성적에 맞는 학점을 출력하는 코드를 작성하시오
		 * 90점 이상 ~ 100이하 : A
		 * 80점 이상 ~ 90미만 : B
		 * 70점 이상 ~ 80미만 : C
		 * 60점 이상 ~ 70미만 : D
		 * 60미만 : F
		 * 0보다 작거나 100보다 큰 경우 : 잘못된 점수
		 * */ 
		System.out.print("성적을 입력해주세요 : ");
		Scanner scan = new Scanner(System.in);
		
		int num = scan.nextInt();
		
		if(num < 0 || num > 100) {
			System.out.println("잘못된 점수");
		}
		else if(num >= 90) {
			System.out.println("A");
		}
		else if(num >= 80) {
			System.out.println("B");
		}
		else if(num >= 70) {
			System.out.println("C");
		}
		else if(num >= 60) {
			System.out.println("D");
		}
		else if(num < 60) {
			System.out.println("F");
		}
		

	}


}

 

'자바 기초 및 세팅' 카테고리의 다른 글

Day04 이중 반복문, 공약수, 공배수, 최대 공약수, 최소 공배수  (0) 2023.12.13
day3 조건문  (0) 2023.12.13
2day 조건문  (0) 2023.12.11
2day  (1) 2023.12.11
jdk설치 및 환경변수 설정  (0) 2023.12.11