- 🍽️ 변수(그릇에 값 담기) - 저장 공간 선언 - 값의 타입 : 접시 종류 - 값의 이름 : 접시 이름 - 초기화 : 선언과 동시에 저장 - 덮어쓰기 : 선언 이후 값을 저장
- 🧷 상수 - 변하지 않은 저장공간 ------------------------------------------ final int number = 10; // 1. 상수로 선언 (데이터 타입 앞에 final 을 붙이면 됩니다.) number = 11; // e2. 변수의 값을 바꾸려고하면 에러가 납니다!- ❓ 기본형 변수란? - 논리형 변수 : boolean - True/False 만 저장 - 문자형 변수 : char - 'A', '1', 'a' 등 한 글자만 저장 - 정수형 변수 : byte, short, int, long - 0,1,2,3 같은 정수형 숫자만 저장 - 실수형 변수 : float, double - 0.123, 0.99999 와 같은 소수점 실숫값을 저장 - 실수는 표현 범위가 매우 넓어서 정수형 변수에서 담지 못할 수 있습니다.
- 📑 참조형 변수 - 문자열 변수 : String - “Apple”, “텍스트” 와 같은 문장을 저장합니다. ------------------------------------------ ex - String message = "Hello World"; // 문자열을 저장합니다.- 그 외 : Object, Array, List … - 단일 저장공간에 담을 수 없는 값을 저장 ------------------------------------------ List<int> alphabet = [0,1,2,3]; // 기본형 변수 여러개를 저장합니다.
- 🎁 래퍼 클래스 변수 - “기본형 변수를 클래스로 한번 랩핑(감싸는) 변수” - 박싱 : 기본형 변수 -> 래퍼 클래스 변수 - 언박싱 : 래퍼 클래스 변수 -> 기본형 변수 ------------------------------------------// 박싱 // Integer 래퍼 클래스 num 에 21 의 값을 저장 int number = 21; Integer num = new Integet(number); // 언박싱 int n = num.intValue(); // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줍니다.
- 🔢숫자와 🔠문자 - 숫자(int)를 문자(char)로 매핑해서 표현 - Java에서는 기본적으로 아스키코드라는 규칙으로 문자를 저장(표현)
- 문자와 문자열 - 선언 관점에서 차이점 - 문자 (char) - char alphabet = 'A'; // 문자 하나를 저장합니다. (''따옴표 사용) - 문자열 (String) - String message = "Hello World"; // 문자열을 저장합니다. (""쌍따옴표 사용) - 저장 관점에서 차이점 - 문자 (char) - 문자 뒤에 \0(널문자) X - (1 byte만 쓰기 때문에 끝을 알아서 데이터만 저장)(''따옴표 사용) - 문자열 (String) - 문장의 끝에 \0(널문자) O - (몇 개의 byte를 쓸지 모르기 때문에 끝을 표시) - 참조형 - 문자 (char) - 기본형 - 문자열 (String) - 참조형
- 참조형 - 참조형 변수 = 주솟값을 저장하는 '주소형 변수' - 저장 관점에서 차이점 - 기본형 변수 : 원본 값이 Stack 영역에 있습니다. - 참조형 변수 : 원본 값이 Heap 영역에 있습니다.
- Stack과 Heap - Stack : 정적으로 할당된 메모리 영역 - Heap : 동적으로 할당된 메모리 영역
- ⌨ 입력 & 💻 출력 - ⌨ 입력 ------------------------------------------ Scanner sc = new Scanner(System.in); // Scanner 객체를 new 명령어로 생성합니다. String input = sc.next(); // sc(Scanner)의 .next(); 를 실행하면 input 변수에 입력한 글자를 받을 수 있습니다. - 💻 출력 ------------------------------------------ System.out.println("입력값 : " + input); // 입력한 글자를 출력합니다.
- 변수 타입 바꾸기(형변환) - 정수 ↔ 실수 ↔ 문자 - 자동 형변환 - 큰 크기로 형변환 : 작은 크기 타입 -> 큰 크기의 타입 - 공통 실행환경🗺️이 있어서 여러 기기에서 실행 가능
💁♀️ 요리 레시피 메모장 만들기
- 입력값 - 내가 좋아하는 요리 제목을 먼저 입력합니다. - 요리 별점을 1~5 사이의 소수점이 있는 실수로 입력해 주세요. (ex. 3.5) - 이어서 내가 좋아하는 요리 레시피를 한 문장씩 10문장을 입력합니다. - 출력값 - 입력이 종료되면 요리 제목을 괄호로 감싸서 먼저 출력해 줍니다. - 이어서, 요리 별점을 소수점을 제외한 정수로만 출력해 줍니다. (ex. 3) - 바로 뒤에 정수 별점을 5점 만점 퍼센트로 표현했을 때 값을 실수로 출력해 줍니다. (ex. 60.0%) - 이어서, 입력한 모든 문장 앞에 번호를 붙여서 모두 출력해 줍니다. ---------------------------------------------------------------- ex) 입력 예시 백종원 돼지고기 김치찌개 만들기 4.5 돼지고기는 핏물을 빼주세요. 잘익은 김치 한포기를 꺼내서 잘라주세요. 냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요. 다진마늘 한스푼, 설탕 한스푼 넣어주세요. 종이컵으로 물 8컵 부어서 센불에 끓여주세요. 핏물 뺀 돼지고기를 넣어주세요. 된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요. 간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요. 중불로 줄여서 오래 끓여주세요~!! 마지막에 파 쏭쏭 썰어서 마무리하면 돼요^^ ---------------------------------------------------------------- [ 백종원 돼지고기 김치찌개 만들기 ] 별점 : 4 (80.0%) 1. 돼지고기는 핏물을 빼주세요. 2. 잘익은 김치 한포기를 꺼내서 잘라주세요. 3. 냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요. 4. 다진마늘 한스푼, 설탕 한스푼 넣어주세요. 5. 종이컵으로 물 8컵 부어서 센불에 끓여주세요. 6. 핏물 뺀 돼지고기를 넣어주세요. 7. 된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요. 8. 간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요. 9. 중불로 줄여서 오래 끓여주세요~!! 10. 마지막에 파 쏭쏭 썰어서 마무리하면 돼요^^
- 결과
import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String title = scan.nextLine(); float score = scan.nextFloat(); String input1 = scan.nextLine(); String input2 = scan.nextLine(); String input3 = scan.nextLine(); String input4 = scan.nextLine(); String input5 = scan.nextLine(); String input6 = scan.nextLine(); String input7 = scan.nextLine(); String input8 = scan.nextLine(); String input9 = scan.nextLine(); String input10 = scan.nextLine(); double percentage = (double) ((int) score * 100) / 5; System.out.println("[ " + title + " ]"); System.out.println("별점 : " + (int)score + " (" + percentage + "%)"); System.out.println("1. " + input1); System.out.println("2. " + input2); System.out.println("3. " + input3); System.out.println("4. " + input4); System.out.println("5. " + input5); System.out.println("6. " + input6); System.out.println("7. " + input7); System.out.println("8. " + input8); System.out.println("9. " + input9); System.out.println("10. " + input10); scan.close(); } }