코딩/Java

JAVA 이클립스 05 Scanner

로밋코딩 2024. 10. 1. 16:43
반응형

package scannerexam;

import java.util.Scanner;

 

public class ScannerExam01 {

 

public static void main(String[] args) {

/* 키보드로부터 데이터 입력받기

* 1. read() : 키보드에서 키 하나를 입력하면 프로그램에서 숫자로 된 키코드를 읽음

* System.in.read();

* 시스템의 표준 입력장치(in, 키보드) 로 읽어 오기

* 2. Scanner 클래스 사용

* - Scanner 클래스를 사용하기 위해서는 프로그램의 첫 행에 Scanner 클래스의 경로 이름을

* 컴파일러에게 알려주어야 함

* - import java.util.Scanner

* - import : 컴파일러에게 알려주기, 해당되는 클래스들을 미리 불러와서 준비시키기

* 단축기) 해당 클래스명 위에서 Ctrl + Shift + o

* - 데이터 입력 메소드

* · next() : 문자열(String), 탭, 공백, Enter로 구분

* · nextLine() : 문자열, Enter를 치면 Enter 전까지의 모든 자료를 읽어오기

* 주소들에 주로 사용

* · nextInt() : 정수형(int)

* · nextLong() : 정수형(Long)

* · nextFloat() : 실수형(float)

* · nextdouble() : 실수형(double)

* ...

*

* 메모리 구조(자바에서 메모리 관리는 운영체제가 아닌 jvm 이라고 함)

* 레지스터 영역 | 데이터 영역 | stack영역 | heap 영역

*

*/

//#1. 준비 (객체 생성)

// 타입 변수명 = 값;

 

Scanner scan = new Scanner(System.in);

 

//#2. 객체를 사용

//#2-1 안내 문구

System.out.println("정수를 입력하세요");

int num = scan.nextInt(); // 사용자 입력한 정수

scan.next(); // 사용자가 입력한 문자열(공백, 탭, Enter로 구분)

System.out.println("이름를 입력하세요");

// String name=scan.next();

String addr = scan.nextLine(); // 사용자가 입력한 줄 (Enter 전까지)

 

 

System.out.println("입력한 숫자 :" + num);

// System.out.println("입력한 숫자 :" + name);

System.out.println("입력한 문자 :" + addr);

 

 

 

}

 

}

package scannerexam;

 

import java.util.Scanner;

public class ScannerExam02 {

 

public static void main(String[] args) {

/*

* //키보드로부터 이름 ,국어 점수, 수학점수를 입력받아서

* // 이름 : 홍길동

* // 국어 : 89

* // 영어 : 90

*

*/ //#1. Scanner 객체를 생성

Scanner scan = new Scanner(System.in); // 키보드로부터 입력 받을 준비

 

//#2. 변수 선언

String name="";// 초기화

int kor=0, eng=0 ; // 지역변수는 선언과 동시에 초기화 시키기

 

 

//#3. 안내 문구

System.out.println("이름을 입력하세요..");

//#4. 키보드로부터 입력받을 값을 변수에 저장

name = scan.nextLine(); //문자열

 

System.out.println("국어 점수 입력 >>");

kor = scan.nextInt();

 

System.out.println("영어 점수 입력 >>");

eng = scan.nextInt();

 

System.out.println("이름 : " + name);

System.out.println("국어 : " + kor);

System.out.println("영어 : " + eng);

 

 

 

}//end of main

 

}//end of class

 

-예제-

package bookexam;

 

import java.util.Scanner;

 

public class BookExam9 {

 

public static void main(String[] args) {

 

 

//문9)키보드로 두 실수를 다음과 같이 입력받습니다.(Scanner 이용.) 입력된 첫 번째

// 수에 두 번째 수를 나눈 결과를 "결고:값"으로 출력하되, 두 번째 수에 0 또는 0.0이

// 입력되었을 경우 "결과 : 무한대"가 출력되도록 코드를 작성해보세요 (Scanner 의 next()사용)

 

/* 첫 번째 수: 7.3

 

* 두 번째 수: 2.5

 

* -------------------------------------

 

* 결과:2.92(or 결과: 무한대)

 

*

 

*/

 

 

 

/*

 

* 교재 : p105

 

문자열을 기본 타입으로 강제 타입 변환

 

String -> int : Integer.parseInt(문자열)

 

String -> long : Long.parseLong(문자열)

 

String -> double : Double.parseDouble(문자열)

 

...

 

 

 

숫자를 문자열로 강제 타입 변환

 

int -> String : String.valueOf(정수)

 

double -> String : String.valueOf(실수)

 

....

 

 

 

*/

 

//#1. Scanner 객체 생성

 

Scanner scan = new Scanner(System.in);

 

double num1 = 0.0;

 

double num2 = 0.0;

 

 

 

System.out.println("첫 번째 수 : >>");

 

// num1 = scan.next(); 문자열

 

num1 = Double.parseDouble(scan.next()); //실수형태의 문자열을 실수로 타입변환

 

 

 

System.out.println("두 번째 수 : >>");

 

// num2 = scan.next(); 문자열

 

num2 = Double.parseDouble(scan.next());

 

 

 

// System.out.println(2 / 0); //ArithmeticException예외 발생

 

// System.out.println(2 / 0.0); //Infinity

 

//System.out.println(2.5 / 0.0); //Infinity

 

double result = num1/num2;

 

 

 

if(num2 != 0.0) {

 

System.out.println("결과: " + result);

 

}else {

 

System.out.println("무한대"); //결과: Infinity

 

}

 

 

 

scan.close();

 

 

 

 

 

 

 

 

 

}//end of main

 

}//end of BookExam150_4

 

 

반응형