키보드로부터 한 줄 입력받기
숫자나 문자와 같은 경우는 그 자체를 값으로 표현할 수 있지만 스캐너와 같은 타입들은 값을 표현하기 애매하다.
그래서 이와 같은 타입의 값을 생성하기 위해, new라는 키워드를 이용하게 된다.
new 뒤에 타입 이름을 넣어주고 그 뒤에 괄호를 열고 닫으면 그 타입의 값이 생성되는 구조.
// 새 값을 생성하기 위한 키워드(new) + 타입명 + ()
new TypeName()
// parameter는 타입에 따라 필요한 경우도 있고 그렇지 않은 경우도 있음
new TypeName(parameter)
1. 코드 영역에 "Scanner"를 입력하면 팝업이 뜬다.
2. 가장 윗줄의 "Scanner java.util"이 선택된 채로 엔터키를 입력하면 첫 번째 줄에 코드 한 줄이 생겨난다.
3. 스캐너는 파라미터가 필요한 타입. 입력 소스를 필요로 한다.
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
Scanner scanner;
scanner = new Scanner(System.in);
}
}
* System.in : 표준 입력 인터페이스
* System.out : 표준 출력 인터페이스. 표준 출력을 통해 무언가를 출력할 때 사용.
스캐너라는 것이 표준 입력을 통해서 사용자로부터 문자열을 입력받는 것.
Scanner을 통해 문자열을 입력받는 코드
nextLine() 기능 : 사용자가 키보드로 입력한 문자열 타입의 값을 받아올 수 있다.
문자열을 되돌려주기 때문에 String 타입의 변수에 그대로 대입해 줄 수 있다.
scanner.nextLine();
public class Input {
public static void main(String[] args) {
Scanner scanner;
scanner = new Scanner(System.in);
String input = scanner.nextLine();
System.out.println(input);
}
}
키보드로부터 띄어쓰기 단위로 입력받기
next를 이용하면 nextLine(입력한 줄을 그대로 문자열 값으로 되돌려줌)과는 조금 다르게 띄어쓰기 단위로 문자를 분할해서 여러 번 되돌려주는 기능이 있다.
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
Scanner scanner1 = new Scanner(System.in);
String input1 = scanner1.next();
String input2 = scanner1.next();
String input3 = scanner1.next();
System.out.println(input1);
System.out.println(input2);
System.out.println(input3);
}
}
키보드로 입력받은 숫자 사용하기
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
System.out.println("숫자를 하나 입력해주세요");
Scanner scannerNumber = new Scanner(System.in);
String intInput = scannerNumber.nextLine();
System.out.println(intInput + 1);
}
}
문자열 타입의 + 연산자를 사용하게 되면, 뒤에 있는 숫자까지도 문자열로 변환해서 문자열의 연결이 이루어지게 된다.
Integer.parseInt() : 파라미터로 문자열을 넘겨주면 숫자로 변환해서 반환하는 기능
int number = Integer.parseInt(intString);
System.out.println("다음 숫자는" + number + 1 + "입니다.");
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
System.out.println("숫자를 하나 입력해주세요");
Scanner scannerNumber = new Scanner(System.in);
String intInput = scannerNumber.nextLine();
int intValue = Integer.parseInt(intInput);
System.out.println(intValue + 1);
}
}
입력 값, 1023 / 출력 값 : 1024
예제
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
Scanner scannerEx = new Scanner(System.in);
System.out.println("달러 환율을 입력하세요.");
String exchangeString = scannerEx.nextLine();
System.out.println("순대국값을 입력하세요.");
String priceOfSoupString = scannerEx.nextLine();
double exchange = Double.parseDouble(exchangeString);
double priceOfSoup = Double.parseDouble(priceOfSoupString);
System.out.println("순대국은 " + priceOfSoup / exchange + "달러입니다.");
}
}
예외 처리
위의 예제에서 숫자 대신 "사달러" 라고 입력하면 오류가 발생한다. 이와 같은 예외에 대응하는 것이 무척이나 중요하다.(특히 사용자와 상호작용하는 프로그램이라면)
자바에서의 예외 처리는 try-catch 구문을 사용한다.
try {
예외 발생 가능성이 있는 코드
} catch (Exception e) {
예외가 발생했을 때 실행될 코드
}
Exception : 모든 타입의 예외발생시, cathch 블록이 실행된다.
(* NumberFormatException 처럼 예외의 경우를 지정해줄 수 있다.)
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
System.out.println("숫자를 하나 입력해주세요");
Scanner scannerNumber = new Scanner(System.in);
String intInput = scannerNumber.nextLine();
System.out.println(intInput + 1);
// 예외 처리하기
try {
int intValue = Integer.parseInt(intInput);
System.out.println(intValue + 1);
} catch (Exception e) {
System.out.println("숫자를 입력해야 합니다.");
}
}
}
여기서 intValue 변수는 try안에서 선언되었는데,
자바에서는 중괄호 블록 안에서 선언된 변수는 그 안에서만 사용될 수 있다.(그래서 try안으로 넣어준 것)
유투브 "초간단 자바"님 영상을 통해 공부한 내용입니다 !www.youtube.com/watch?v=9YEmfIjnvJ8
'Language > Java' 카테고리의 다른 글
반복문 (0) | 2021.03.30 |
---|---|
조건문 (0) | 2021.01.30 |
데이터의 형태, 자료형 (0) | 2021.01.25 |
연산자 (0) | 2021.01.19 |
숫자, 문자, 주석 그리고 변수 (0) | 2021.01.18 |