프로그래밍 언어에 있어서 가장 기초적인 개념이 되는것들 중 하나가 변수이다.
변수란, 어떤 값을 저장하기 위한 껍데기와 같은 역할을 해주는 것이고, 이 껍데기 안에는 숫자, 문자, 배열 등등 다양한 종류의 데이터들이 저장될 수 있다.
앞으로 올 여러 포스팅에서는 다양한 데이터 타입과 각각의 데이터 타입으로 할 수 있는 것들을 더욱 자세히 살펴 볼 예정이다.
데이터는 크게 원시 타입과 참조 타입으로 나누어지는데, 이 둘의 가장 큰 차이점은 원시 타입 객체는 데이터 그 자체가 저장되는 반면, 참조 타입 객체는 데이터가 저장되어있는 주소가 저장된다는 것이다.
원시 타입 (Primitive Type) | 참조 타입 (Reference Type) |
---|---|
- byte - short / long - int - double - float - char - boolean - String6 | - array |
<type> <변수_이름> = <값>
의 형태로 변수를 선언할 수 있다// main 함수 밖에서 변수 선언
static int num1 = 3
public static void main(String[] args) {
// main 함수 안에서 원시 타입 변수 선언
int num2 = 5;
// main 함수 안에서 참조 타입 변수 선언
int[] numList = new int[5];
}
다른 타입을 가진 변수들이 계산되는 과정에서 자바는 다양한 타입에 형변환을 진행해서 결과값을 계산한다
public static void main(String[] args) {
int num1 = 2;
int num2 = 3;
System.out.println(num1 + num2) // 5
System.out.println("Num1 value: " + num1) // Num1 value: 2
System.out.println("Num1 value: " + num1 + num2) // Num1 value: 25
System.out.println("Num1 value: " + (num1 + num2)) // Num1 value: 7
}
특정 변수를 어디에서 사용할 수 있는지(적용 범위)를 스코프라고 하는데, 변수가 선언된 위치에 따라서 다른 스코프를 가진다.
변수를 입력해주는 방법도 있지만, 사용자로 부터 input을 받아야 되는 상황이 많이 있다. Java에서는 input을 입력 받기 위해 다양한 방법을 사용할 수 있는데 그 중 가장 간단한 방법 중 하나인 Scanner를 사용해서 input을 받을 수 있다.
어떤 타입의 데이터를 입력받을 지에 따라 다른 메서드를 활용하여 적절하게 데이터를 받아올 수 있다.
정수 입력 받기
Scanner.nextInt()
// 스캐너 import 해오기
import java.util.Scanner
public class Code {
public static void main(String[] args) {
Scanner kb = new Scanner( System.in ); // 새로운 스캐너 생성
int input = kb.nextInt(); // 입력받은 정수를 변수에 할당
kb.close(); // 스캐너 사용이 완료되면 스캐너를 종료하기
}
}
문자열 입력 받기
scanner.next()
: 공백을 기준으로 한 단어씩 끊어서 읽어오기