Code States | Java 기초 (2)

yeonk·2022년 5월 16일
1
post-thumbnail

1. 변수(Variable)


데이터 저장 공간.
사용 목적: 데이터 재사용, 저장공간 확보, 협업 효율 향상 (변수명)

  • 선언: 메모리에 데이터 저장 공간 확보

  • 할당: 메모리 공간에 값을 저장

  • 자바에서 변수명은 카멜 케이스를 사용(camelCase)

    • 변수명은 숫자로 시작 불가

    • 변수명으로 예약어 사용 불가






2. 상수(Constant)


변하지 않는 수 (고정 값)
사용 목적: 에러 방지(오타로 인한), 값 보존, 데이터 재사용

  • 선언 방법: final 예약어 사용

  • 상수명: SCREAMING_SNAKE_CASE 사용






3. 리터럴(Literal)


변하지 않는 값 그 자체 (ex. 변수에 할당하는 값)

예: 20, B, false 등






4. 타입 변환


자동 타입 변환수동 타입 변환을 통해 변환이 가능함



자동 타입 변환

byteshort, charintlongfloatdouble

  • 바이트 크기 기준: 바이트 크기가 더 큰 타입으로의 변환

  • 정밀도 기준: 더 정밀한 타입으로의 변환



수동 타입 변환

캐스팅(casting)을 이용한 타입 변환
캐스팅 연산자: ()






5. 연산자(Operator)


산술 연산자

  • +: 두 항 합

  • -: 두 항의 차

  • *: 두 항의 곱

  • /: 두 항을 나눈 값의 몫

  • %(모듈로 연산자): 두 항을 나눈 값의 나머지






비교 연산자

대소 비교 연산자, 등가 비교 연산자

  • 대소 비교 연산자: >, <=, >, >=

  • 등가 비교 연산자: ==, !=

  • 조건 연산자(삼항 연산자): 조건 ? 참 결과: 거짓 결과;






우선 순위

출처: https://blog.hexabrain.net/91






6. 콘솔 I/O


콘솔 입력

import java.util.Scanner;  // 1               
Scanner scanner = new Scanner(System.in);  // 2
String inputData = scanner.nextLine();  //3
  • 1: java.utilScanner 클래스 임포트

  • 2: Scanner 클래스의 객체를 생성(인스턴스화)

  • 3: scannernextLine()메서드를 이용해 데이터를 입력 받음

    • nextInt(): 정수형 입력

    • nextFloat(): 실수형 입력






콘솔 출력

  • Sytem.out.print(): 내용 출력 (줄바꿈 X)

  • System.out.println(): 내용 출력 (줄바꿈 O)

  • System.out.printf(): 형식대로 출력 가능 (지시자 사용)

    • %b: 불리언

    • %d: 10진수

    • %o: 8진수

    • %x, %X: 16진수

    • %c: 문자

    • %s: 문자열

    • %n: 줄바꿈






7. 조건문


if문, if else문, switch문이 있음



if문

if(조건식) {
	조건이 참일 때 실행될 코드 
}



if else문

if(조건식1) {
	조건1이 참일 때 실행될 코드 
}
else if(조건식2) {
	조건2이 참일 때 실행될 코드 
}
else {
	조건1, 조건2가 참이 아닐 때, 실행될 코드 
}
  • else문은 생략 가능



switch문

변수 값에 따른 조건문


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문 실행)






8. 반복문


for문, while문, do while문



for문

조건식이 참일 때 주어진 횟수만큼 반복

for(초기화; 조건식; 증감식) {
	실행 코드;
}

for (int i=0; i< 10; i++) {
	System.out.println(i);
}



enhanced for문

배열의 요소를 하나씩 꺼내서 for문을 실행 시킨다

for(요소 : 배열) {
	실행 코드;
}



while문

초기화
while(조건식) {
	실행 코드;
    증감식;
}



do-while문

블록 내부 우선 실행 후 반복 여부 결정

do {
	실행 코드;
}while(조건식);



break문

제어문을 중지할 때 사용
가장 가까운 제어문만 종료



continue문

반복문에서 사용
이후 코드를 실행하지는 않으나 반복문은 종료하지 않고 다음 반복으로 넘어가게 함






9. 배열(Array)


1차원 배열

  • 선언
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][];

0개의 댓글