✿∘˚˳°∘°

3일차 : Scanner, 연산자 본문

국비수업/JAVA

3일차 : Scanner, 연산자

_HYE_ 2022. 12. 6. 00:33

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
Comments