메모리(RAM)에 값을 기록하기 위한 공간
값에 의미 부여 (가독성 좋아짐)
- 한번 값을 저장해 두고 계속 사용 가능
- 유지 보수 용이
변수 선언
: 메모리 공간에 데이터를 저장할 수 있는 공간을 할당하는 것
[표현법] 자료형 변수명 = 값;
int num = 100;
변수의 초기화
: 변수를 사용하기 전에 처음으로 값을 저장하는 것
→ 지역변수는 반드시 초기화 해야함
- 변수명은 중복 불가
- 대소문자 구분 가능
- 예약어(이미 자바에서 사용되고 있는 키워드들) 사용 불가
- 숫자 가능 (단, 숫자로 시작하는 건 안됨)
int age1;
// int 1age;
- 특수문자 가능(단, 언더바(_), 달러($) 이외 특수문자 사용 불가)
int number_1;
int number$1;
//int nubmer!1;
//int number#1;
- 여러 단어 이름은 단어의 첫 글자 대문자로 시작
단, 첫 시작 글자는 관례상 소문자로 시작
ex) ageOfVampire, userName
- 한글 사용할 수 있으나 영어 사용 권장
+ 생활코딩 JAVA1 - 변수의 효용
내가 그의 이름을 불러주기 전에는
그는 다만
하나의 몸짓에 지나지 않았다. -김춘수 꽃-
변수의 효용은 데이터 타입을 지정할 수 있는 것 뿐만 아니라, 작업할 때 많은 변수들을 한번에 통제할 수 있는 효율성에 있다. 또한 코딩은 상호간 언어이기 때문에 코드를 읽는 상대가 내가 쓴 변수가 어떤 값을 내포하고 있는지(VAT, name, cost, etc...) 쉽게 파악할 수 있도록 좋은 이름을 부여해야 한다.
컴퓨터에서 “기차“, “출력하세요“등과 같이 단어나 문장을 문자열이라고 표현
“ ”로 묶여 있으면 문자열로 인식하며
Java에서는 String 객체를 이용하여 저장
Scanner class
사용자로부터 입력되는 정수, 실수, 문자열을 처리하는 클래스Scanner sc = new Scanner(System.in);
사용자가 입력한 문자열을 뽑아오는 메소드
입력받고자 하는 내용을 먼저 출력해서 입력 유도
System.out.print("당신의 이름은 무엇입니까 : ");
next() : 사용자가 입력한 값 중 공백이 있을 경우 공백 이전까지의 값만 읽어온다.
String name = sc.next();
nextLine() : 사용자가 입력한 모든 값을 읽어온다.
String name = sc.nextLine();
사용자가 입력한 정수값을 뽑아오는 메소드
System.out.print("당신의 나이는 몇살입니까 : ");
int age = sc.nextInt();
사용자가 입력한 실수값을 뽑아오는 메소드
System.out.print("당신의 키는 몇 cm입니까 : ");
double height = sc.nextDouble();
![](https://velog.velcdn.com/images%2Fletthere%2Fpost%2F83a6647f-80fe-48a2-ad9a-42c15408e081%2Fimage.png)
버퍼에 남은 엔터를 빼주는 과정이 필요할 때
=> sc.nextLine() 한번 더 써준다.
nextInt() 다음 nextInt()이 또 나올 때는
nextLine()으로 엔터 버퍼 따로 빼줄 필요 X
=> nextInt()는 엔터를 읽을 수 없기 때문
nextInt() 다음에 nextLine() 올 때만 필요한 작업!
nextchar() 메소드는 존재하지 않기 때문에
'문자' 값을 입력받기 위해서는
sc.nextLine() 메소드를 통해 '문자열'로 먼저 받아주고
그 뒤에 .charAt(index) 메소드를 통해 문자를 추출하는 과정이 필요하다.
index에 0을 대입하면 문자열의 첫번째 문자값을 추출한다는 의미이다.