✿∘˚˳°∘°
3일차 : Scanner, 연산자 본문
2022/11/30
[ 1. Scanner ] ======================================================================
Scanner Class : 사용자로부터 입력되는 정수, 실수, 문자열을 처리하는 클래스
( JAVA설치 시 기본적으로 제공되는 기능제공 클래스 java.util)
[ 사용방법 ]
스캐너 클래스를 import 해준다.
Scanner 약어 = new Scanner(System.in);
정수 : int a = sc.nextInt();
실수 : double b = sc.nextDouble();
문자열 : String c = sc.next(); / sc.nextLine(); >> sc.next() : 띄어쓰기X / sc.nextLine() : 띄어쓰기O
문자 : char d = sc.next().charAt(0);
public void scan1() {
//스캐너 별칭생성
Scanner sc = new Scanner(System.in);
//System.out.print("문자열을 입력하세요 : ");
//sc.nextLine(); 이전에 버퍼를 사용한 기록이 없으므로 사용해선X
//String str = sc.next();
//System.out.println("str : "+str);
System.out.print("정수를 입력하세요 : ");
int num = sc.nextInt(); //sc.next타입() : 버퍼에 엔터전까지 입력된 데이터를 읽어옴
//sc.nextInt() : 키보드입력을 기다림
//키보드값 입력 후 엔터를 치면 입력된 값을 정수로 읽어옴
//정수가 아닌 값을 입력하면 에러발생
System.out.println("Num : "+num);
System.out.print("실수를 입력하세요 : ");
double dNum = sc.nextDouble(); //실수형
//sc.nextDouble() : 키보드 입력을 기다림
//키보드값 입력 후 엔터를 치면 입력된 값을 실수로 읽어옴
//실수로 변환할 수 없는 값(문자, 문자열등)을 입력하면 에러 발생
/*정수<실수이기때문에 정수를 입력해도 실수로 판단되어 실행가능
변환이 가능한 친구들은 알아서 변환이 된다
단, 변환이 불가능한 실수->문자 같은 경우는 에러발생(수동형변환을 해줘야함)*/
System.out.println("Num : "+dNum);
System.out.print("문자열을 입력하세요 : ");
String str1 = sc.next(); //sc.next() : 문자열을 입력받는 메소드
//sc.next()는 공백문자를 인식할 수 없다. 공백 직전까지만 인식 ( 야호 야호 -> 야호)
System.out.println("str1 : "+str1);
System.out.print("문자열을 입력하세요 : ");
sc.nextLine();//버퍼에 남아있는 엔터를 제거하는 용도
//주의할점 : 버퍼에 엔터가 남아있지 않으면(첫스캔사용같은) 사용해선 안된다.
//버퍼를 쓴적이 있는지 확인 후 사용해야한다.
String str2 = sc.nextLine();
System.out.println("str2 : "+str2);
//스캐너를 통한 문자 입력받는 방법
/*
문자열 : next(), nextLine()
정수 : nextInt();
실수 : nextDouble();
*/
System.out.print("문자를 입력하세요 : ");
String str3 = sc.next(); //문자열로 입력받고
char ch = str3.charAt(0); //입력받은 문자열 중 첫번째 글자만 물자로 추출 (1):두번째 (2):세번째
//보통은 문자를 입력하면 한글자만 쓰니까 charAt(0)으로 사용하면 된다
System.out.println("ch : "+ch);
System.out.print("문자를 입력하세요2 : ");
char ch2 = sc.next().charAt(0);
System.out.println("ch2 : "+ch2);
}
문제1. 자신의 정보를 입력받아 출력하는 프로그램을 만드시오.
(단, 키는 정수로변환하고 몸무게는 첫째 자리까지 출력)
public void exam1() {
/*
이름(String), 나이(int), 주소(address), 키(double), 몸무게(double), 성별(char)을 입력받고 출력하는 프로그램
-키는 정수로 변환하여 출력
-몸무게는 소수 첫째 자리까지 출력
*/
Scanner sc = new Scanner(System.in);
System.out.print("이름 : ");
String name = sc.next();
System.out.print("나이 : ");
int age = sc.nextInt();
System.out.print("주소 : ");
sc.nextLine();
String address = sc.nextLine();
System.out.print("키 : ");
double height = sc.nextDouble();
System.out.print("몸무게 : ");
double weight = sc.nextDouble();
System.out.print("성별[남/여] : ");
char gene = sc.next().charAt(0);
System.out.println("==========[결과]===========");
System.out.println("이름 : "+name);
System.out.println("나이 : "+age);
System.out.println("주소 : "+address);
//int intHeight = (int)Height
System.out.println("키 : "+(int)height);
System.out.printf("몸무게 : %.1f \n", weight);
//엔터 : \n, System.out.println(), System.out.println("\n성별 : "+gene)
System.out.println("성별 : "+gene);
}
문제2. 점수를 입력 받고 총합과 평균을 구하는 프로그램만들기.
(단, 총합 : 정수출력 / 평균 : 실수(소수점2번째자리) )
public void exam2() {
Scanner sc = new Scanner(System.in);
System.out.print("국어점수 입력 : ");
int kor = sc.nextInt();
System.out.print("수학점수 입력 : ");
int math = sc.nextInt();
System.out.print("영어점수 입력 : ");
int eng = sc.nextInt();
//총합 : 입력받은 3과목 점수를 더한 값
int sum = kor+math+eng;
//평균 : 총 합을 과목수로 나눈 값
double avg = (double)sum/3;// sum/3.0
System.out.printf("당신 성적의 총 합은 %d점이고, 평균은 %.2f점 입니다!", sum, avg);
}
>>평균의 경우 실수형으로 계산되어야하므로 sum을 형변환 해주어 (double)sum/3 으로 하거나 sum/3.0으로 연산
'국비수업 > JAVA' 카테고리의 다른 글
6일차 : Break, Continue, Random (0) | 2022.12.06 |
---|---|
5일차 : 제어문 (0) | 2022.12.06 |
4일차 : Operator (0) | 2022.12.06 |
2일차 : 기본코드, 숫자와 문자, 변수 (0) | 2022.12.06 |
1일차 : OT (0) | 2022.12.05 |