스캐너(콘솔로 입력받기)
2023. 12. 11. 17:29ㆍ자바 기초 및 세팅
- Scanner 클래스의 특징
- 기본적인 데이터 타입들을 Scanner 의 메소드를 사용하여 입력받을 수 있다.
예로 들어 100을 입력하고자 할 때, String(문자열)로 입력받고 싶으면 next() 나 nextLine() 을, int(정수)로 입력받고 싶다면 nextInt() 를 사용하여 입력받으면 알아서 해당 타입으로 입력된다. - 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 |