변수의 타입
1. 형식화된 출력 - printf()
- printf() : ‘지시자(specifier)’를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다. ‘지시자’는 값을 어떻게 출력할 것인지를 지정해주는 역할을 한다.
- 정수형 변수에 저장된 값을 10진 정수로 출력할 대는 지시자 ‘%d’를 사용하며, 변수의 값을 지정된 형식으로 변환해서 지시자 대신 넣는다.
- println()과 달리 printf()는 출력 후 줄바꿈을 하지 않는다. 줄바꿈을 하려면 지시자 ‘%n’을 따로 넣어줘야 한다.
System.out.printf("당신의 이름은 %s , 키는 %.1fcm, 성별은 %s입니다.", name, height, gender);
- 지시자의 전체 목록 : Java API에서 Formatter 클래스(java.util패키지)를 찾으면 된다.
%b | 불리언(boolean) 형식으로 출력 |
%d | 10진(decimal) 정수의 형식으로 출력 |
%o | 8진(octal) 정수의 형식으로 출력 |
%x, %X | 16진(hexa-decimal) 정수의 형식으로 출력 |
%f | 부동 소수점(floating-point)의 형식으로 소수점 아래 6자리까지만 출력 |
%e, %E | 지수(exponent) 표현상의 형식으로 출력 |
%c | 문자(charater)로 출력 |
%s | 문자열(string)로 출력 |
- 정렬방법
%5d | 5칸을 확보하고 오른쪽 정렬 |
%-5d | 5칸을 확보하고 왼쪽 정렬 |
%.2f | 소수점 아래 2자리까지만 표시 |
printf() 메소드
int num1 = 10;
int num2 = 20;
float fnum = 3.141592f;
double dnum = 4.1592;
// %d 서식 지정자
System.out.printf("%d\\n", num1);
System.out.printf("%5d\\n", num1);
System.out.printf("%d\\n", num1, num2);
// System.out.printf("%d %d/n", num1); // error
// %f 서식 지정자
System.out.printf("%f %f\\n", fnum, dnum); // \\n : 줄 바꿈
System.out.printf("%f \\t %f\\n", fnum, dnum); // \\t : 수평 탭
System.out.printf("%.3f \\t %.3f\\n", fnum, dnum); //
4. 화면에서 입력받기 - Scanner
- 사용자로부터 입력되는 정수, 실수, 문자열을 처리하는 클래스이다.
- Scanner 클래스를 사용하는 방법
import java.util.*; // Scanner 클래스를 사용하기 위해 추가
Scanner scanner = new Scanner(System.in); // Scanner 클래스의 객체를 생성
String input = scanner.nextline(); // 입력받을 내용을 input에 저장
int num - Integer.paraseInt(input); // 입력받은 내용을 int 타입의 값으로 변환
- scanner.nextLine() : 사용자가 입력한 값을 모두 읽어온다. (공백 포함)
- scanner.next() : 사용자가 입력한 값 중에 공백이 있을 경우 공백 이전까지의 값만 읽어온다.
- scanner.nextInt() : 정수를 입력받을 때 사용한다.
- scanner.nextDouble() : 실수를 입력받을 때 사용한다.
String name = ""; // 초기화, "" 대신 참조변수라서 null 을 사용하기도 함
double height = 0.0;
char gender = '\u0000';
Scanner scanner = new Scanner(System.in); // System.in 키보드로부터 입력을 받는다. (표준 입력)
System.out.println("당신의 이름은 무엇입니까?");
name = scanner.nextLine();
System.out.println("당신의 성별은 무엇입니까? (남/여)");
gender = scanner.nextLine().charAt(0); // charAt() 문자열에서 제공해주는 메소드
[코드 해설]
▶ scanner.nextLine() 으로 "남자"라는 문자열 호출
▶ String 클래스의 charAt() 으로 "남자"라는 문자열에서 index 0인 첫번째 '남' 호출
▶ == charAt()에 위치를 지정하는 방법은 제일 앞의 문자부터 0으로 시작해서 1씩 증가하며 원하는 문자를 뽑아낸다.
// 같은 표현
gender = "남자".charAt(0);
[코드 해설]
▶ 입력값을 받지 않고 바로 호출, String은 new 로 만들지 않고도 바로 호출할 수 있는 유일한 클래스
▶ 0 : 0번째 문자를 말한다. >> 1로 바꿨을 경우 1번(두번째) '자'라는 문자가 호출
// String 클래스를 생성하고 charAt 메소드를 호출
gender = new String("남자").charAt(0);
System.out.println("당신의 이름은 무엇입니까?");
name = scanner.nextLine();
System.out.println("당신의 키는 몇 입니까?(소수점 첫째자리까지 입력하세요.)");
height = scanner.nextDouble();
System.out.println("당신의 성별은 무엇입니까? (남/여)");
scanner.nextLine();
gender = scanner.nextLine().charAt(0);
// 기본 자료형을 입력 받고 문자를 입력 받을 때는 scanner.nextLine(); 한번 더 !
'Java' 카테고리의 다른 글
연산자(Operator) - 연산자(operator) & 단항 연산자 (0) | 2022.08.17 |
---|---|
변수(Variable) - 형변환 (0) | 2022.08.16 |
변수(Variable) - 변수와 상수 (0) | 2022.08.15 |
변수(Variable) - 변수의 타입 : 기본형 & 상수와 리터럴 (0) | 2022.08.15 |
프로그래밍 기초 & 자바(JAVA) (0) | 2022.08.14 |