데이터 저장 공간.
사용 목적: 데이터 재사용, 저장공간 확보, 협업 효율 향상 (변수명)
선언: 메모리에 데이터 저장 공간 확보
할당: 메모리 공간에 값을 저장
자바에서 변수명은 카멜 케이스를 사용(camelCase)
변수명은 숫자로 시작 불가
변수명으로 예약어 사용 불가
변하지 않는 수 (고정 값)
사용 목적: 에러 방지(오타로 인한), 값 보존, 데이터 재사용
선언 방법: final
예약어 사용
상수명: SCREAMING_SNAKE_CASE 사용
변하지 않는 값 그 자체 (ex. 변수에 할당하는 값)
예: 20, B, false 등
자동 타입 변환과 수동 타입 변환을 통해 변환이 가능함
byte
→short, char
→int
→long
→float
→double
바이트 크기 기준: 바이트 크기가 더 큰 타입으로의 변환
정밀도 기준: 더 정밀한 타입으로의 변환
캐스팅(casting)을 이용한 타입 변환
캐스팅 연산자:()
+
: 두 항 합
-
: 두 항의 차
*
: 두 항의 곱
/
: 두 항을 나눈 값의 몫
%
(모듈로 연산자): 두 항을 나눈 값의 나머지
대소 비교 연산자, 등가 비교 연산자
대소 비교 연산자: >
, <=
, >
, >=
등가 비교 연산자: ==
, !=
조건 연산자(삼항 연산자): 조건 ? 참 결과: 거짓 결과;
출처: https://blog.hexabrain.net/91
import java.util.Scanner; // 1
Scanner scanner = new Scanner(System.in); // 2
String inputData = scanner.nextLine(); //3
1
: java.util
의 Scanner
클래스 임포트
2
: Scanner
클래스의 객체를 생성(인스턴스화)
3
: scanner
의 nextLine()
메서드를 이용해 데이터를 입력 받음
nextInt()
: 정수형 입력
nextFloat()
: 실수형 입력
Sytem.out.print()
: 내용 출력 (줄바꿈 X)
System.out.println()
: 내용 출력 (줄바꿈 O)
System.out.printf()
: 형식대로 출력 가능 (지시자 사용)
%b
: 불리언
%d
: 10진수
%o
: 8진수
%x, %X
: 16진수
%c
: 문자
%s
: 문자열
%n
: 줄바꿈
if문, if else문, switch문이 있음
if(조건식) {
조건이 참일 때 실행될 코드
}
if(조건식1) {
조건1이 참일 때 실행될 코드
}
else if(조건식2) {
조건2이 참일 때 실행될 코드
}
else {
조건1, 조건2가 참이 아닐 때, 실행될 코드
}
변수 값에 따른 조건문
int num = 2;
swich (num) {
case 1:
System.out.println("1이 맞습니다.");
break;
case 2:
System.out.println("2가 맞습니다.");
break;
default:
System.out.println("범위를 확인해주세요.");
break;
}
default
: 앞의 코드에서 해당하는 값이 없으면 내부 코드를 실행 시킴
break
: 실행문을 빠져 나오게 함 (미작성 시 모든 case문 실행)
for문, while문, do while문
조건식이 참일 때 주어진 횟수만큼 반복
for(초기화; 조건식; 증감식) {
실행 코드;
}
for (int i=0; i< 10; i++) {
System.out.println(i);
}
배열의 요소를 하나씩 꺼내서 for문을 실행 시킨다
for(요소 : 배열) {
실행 코드;
}
초기화
while(조건식) {
실행 코드;
증감식;
}
블록 내부 우선 실행 후 반복 여부 결정
do {
실행 코드;
}while(조건식);
제어문을 중지할 때 사용
가장 가까운 제어문만 종료
반복문에서 사용
이후 코드를 실행하지는 않으나 반복문은 종료하지 않고 다음 반복으로 넘어가게 함
int[] arr;
int arr[];
데이터타입[] 배열명 = new 데이터타입[배열크기]
int[] arr = new int[3]; // {0, 0, 0}
int[] arr2 = {1, 2, 3}; // {1, 2, 3}
int[] arr3 = new int[] {4, 3, 2, 1}; // {4, 3, 2, 1}
배열 길이: 배열이름.length
(문자열은 length()
)
인덱스: 배열의 인덱스는 0부터 시작함 (배열의 길이의 -1한 값이 마지막 인덱스)
int[] arr2 = {1, 2, 3};
System.out.println(arr2[1]); // 2
배열의 요소로 배열이 있는 경우
int[][] arr; // 2차원
int[][][] arr2; // 3차원
int[][] arr3 = new int[3][2];
// {
// {0, 0},
// {0, 0},
// {0, 0}
//}
int[][] arr4 = {{1, 2}, {3, 4}};
int[][] arr4 = new int[][] {{3, 4}, {1, 2}};
메모리를 비효율적으로 사용하는 것을 줄이기 위해 사용
int[][] arr = new int[4][];