1. 변수
1) 접미사
· int a = 100;
· long l = 10L; 기본은 int로 인지하기 때문에 뒤에 L을 붙여줌 > 가독성 때문에 대문자로 주로 씀
· double d = 1.23;
· float f = 1.23F; // 1.23 float 타입이고 싶어
2) 기본값 (의미가 없게, 해가 없게, 혼자 돌아가지 않도록, 값을 뭘 넣어야할지 모를때)
· boolean : false
· char : '\u0000' : unicode
· int, double : 0, 0.0
· 참조형 : null
3) 정수의 오버플로우 (overflow)
· byte b = 127;
· byte b = 128; error
2. 출력문
1) 종류
(1) System.out.println(); : 엔터기능 O
(2) System.out.print(); : 엔터기능 X
(3) System.out.printf(); : 엔터기능 X, 서식문자 이용, 자바에서는 안씀
* 서식문자 (printf())
%d : 정수
%c : 글자 한개
%s : 글자 한개이상
%f : 실수
printf("서식문자를 포함한 출력문 형태",서식문자에 해당하는 데이터);
2) 출력데이터 형태
· 숫자 출력 : 값
· 문자 한개 출력 : '문자' : 홑따옴표로 묶기
· 문자 한개 이상 출력 : "문자열" : 곁따옴표로 묶기
3) 출력문내 연산
· 숫자 + 숫자 (10+10); > 20
· "문자" + "문자" ("Hello" + "java"); > Hellojava > 문자로 연결된 문자 출력
· "문자" + 숫자 ("Hello" + 10); > Hello10 > 문자로 연결된 문자 출력
· '문자' + 숫자 > 아스키코드값 + 숫자 결과값 숫자 출력
4) 이스케이프 문자 : 문자이기 때문에 "" 안에 작성
·출력문내에 어떠한 기능을 가지고 있는 특수 문자
\n : 줄바꿈 (엔터기능)
\t : 탭간격주기
\" : 겹따옴표를 문자로 출력할때
\' : 홑따옴표를 문자로 출력할때
\\ : 역슬래쉬 출력할때
3. 형변환 (Casting, type coversion, type converting)
boolean 타입을 제외한 다른 타입들을 변환시키는 것
1) 구조
(데이터 타입)변수 또는 데이터
char < int < long < float < double
2) 큰 > 작은 : 다운캐스팅, 디모션, 강제형변환
강제 형변환하여 대입을 시키면 데이터 회손의 우려가 있다.
ex.
int n = 300;
byte b = n; > error
byte b = (byte)n; > 강제형변환 but 숫자깨짐, 데이터손실
b = 44
double d = 1.4;
int i = (int)d; i = 1
(int)3.5 + 4 = 7
(double)4 + 4 = 8.000000
3) 작은 > 큰 : 업캐스팅, 프로모션, 자동형변환
형변환 연산자 (타입) 생략이 가능하나 적어주는 습관을 들이자
ex.
double d = 3.14 * 10; > d = 31.4
(double)5 + 3.5 = 8.5.
i + d > 앞에 (타입) 붙이는게 정석이지만 자동형변환 해줘서 생략 가능 > 가독성을 위해 써주는게 좋음
5 / 2 = 2
(double)5 / 2 = 2.5
5 / 2.0 = 2.5
4. 입력문
1) Systme.in : 키보드 장티를 직접 제어, 키 입력을 받는 표준 입력 스트림 객체
키보드입력 > System.in 입력스트림 > 바이트데이터 > 자바 응용프로그램 > 읽을 수 있는 문자로 변경
2) Scanner : 자바 패키지에서 제공하는 클래스
원하는 타입으로 변환해줌
키보드 입력 > System.in > 바이트데이터 > Scanner > 형변환된 데이터 > 자바응용프로그램
3) 사용방법
(1) import 문 작성 : Scanner 클래스가 있는 자바패키지 가져오기, Scanner 클래스 여기서 사용할거야 선언해주기 #import java.util,Scanner;
(2) Scanner 객체 생성
#Scanner sc = new Scanner(System.in);
(3) 입력받기 (원하는 만큼) : Scanner 클래스는 사용자가 입력하는 키 값을 공백문자(" ", "\t", "\n")를 기준으로 분리하여 토큰 단위로 읽는다. ex. ab cd
# 입력 받는 주요 메서드
|
결과타입 |
메서드명 |
설명 |
|
String |
next() |
다음 토큰을 문자열로 가져온다 |
|
int |
nextInt() |
다음 토큰을 int 타입으로 가져온다 |
|
double |
nextDouble() |
다음 토큰을 double 타입으로 가져온다 |
|
boolean |
nextBoolean() |
다음 토큰을 boolean 타입으로 가져온다 |
|
String |
nextLIne() |
\n(엔터)를 포함하는 한줄을 전부 가져온다 |
(4) Scanner 객체 닫기
sc.close(); 한번 닫으면 다시 못염
package day02;
import java.util.Scanner;
public class Test11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 객체 생성을 하나만 하는 이유, 기능은 동일하기에 여러개 만들필요 없음, 메모리 차지함
// 입력받기
System.out.println("이름을 입력해주세요 : "); // console에 무엇을 입력해야하는지 메세지 띄우기
String name = sc.nextLine(); // 입력받아서 name 변수에 입력받은 문자열 저장
System.out.println(name); // 입력+저장이 잘 됐는지 name변수 출력해서 확인
System.out.println("나이를 입력해주세요 : ");
String age = sc.nextLine(); // 무엇을 적던 전부 문자열로 가져옴
// int ageInt = (int)age; // String은 기본형(int..)으로 바로 형변환이 안된다. 참조형과 기본형은 호환이 안됨
int ageInt = Integer.parseInt(age); // String 변수 age를 int로 선언한 변수 ageInt로 형변환에서 넣기
double ageDb = Double.parseDouble(age); // String > double
System.out.println(age); // 입력받아서 age변수에 입력 받은 문자열 저장
System.out.println("내년 당신의 나이는 " + (ageInt+1) + "살 입니다."); // age가 문자열이기 때문에 문자로 인식되서 입력됨
sc.close();
}
}'basic > java 이론' 카테고리의 다른 글
| day06 - 배열 array (0) | 2021.04.28 |
|---|---|
| day05 - 반복문 (do-while, for) (0) | 2021.04.27 |
| day04 - 조건문(if,switch), 반복문(while,for,do-while,foreaach), 보조제어문(break, coutinue) (0) | 2021.04.26 |
| day03 - 연산자 종류와 우선순위 (0) | 2021.04.23 |
| day01 - [자바세팅, 이클립스설치, java플랫폼, 변수, 데이터타입, 변수의 선언과 사용] (0) | 2021.04.23 |