1.1 변수
· 변수는 값을 저장하기 위한 공간입니다.
· 타입별로 사이즈가 다릅니다.
· 컴퓨터 메모리에 저장됩니다. (프로그램은 변수를 통해 메모리 번지에 값을 저장하고 읽을 수 있습니다.)
· 변수는 첫글자가 문자(소문자) , $, _ 로만 시작해야 합니다. (※ 숫자, 다른 특수문자로 시작할 수 없습니다.)
변수의 타입
값의 분류 | 기본 타입 | 대표 |
정수 | byte, char, short, int, long | int |
실수 | float, double | double |
논리(ture/false) 참/거짓 | boolean | boolean |
정수형 변수 int - ex) 정수 5
실수형 변수 double - ex) 실수 5.5 (소수점 표기 가능 (double 타입은 소수점 아래 15자리 이하까지))
1.2 정수 타입
byte* : 1byte 는 8bit 입니다.
bit* : bit는 0과 1이 저장되는 단위입니다.
변수 선언
변수명 규칙
· 의미 있는 이름으로 지어주는 것이 좋습니다.
· 숫자로 시작할 수 없습니다
· 특수문자 $ , _ 외엔 사용할 수 없습니다.
· 예약어를 사용할 수 없습니다.
카멜 표기법 : 첫단어를 제외한 다음 단어부터 오는 단어는 대문자로 표기합니다. ex) newMemberName
스네이크 표기법 : 단어와 단어 사이에 _로 연결하여 표기합니다. ex) new_member_name
int number; // int 정수형 변수를 선언! 변수명 : number
int score; // int 정수형 변수 선언! 변수명 : score
int aaaaaaaaa; // 선언은 가능하나, 변수 이름은 '의미 있는 이름'으로 지어주는 것이 좋다.
int 123abc; // 불가능 숫자로 시작할 수 없다.
int $a; // 가능
int _a; // 가능
int #a; // 불가능 $와 _를 제외하고는 불가능
같은 타입의 변수를 한 번에 여러 개 선언 하는 방법
· , (콤마)로 구분해서 동시에 '선언만' 가능합니다.
· 변수명은 중복되면 안됩니다.
int x;
int y;
int z;
int x, y, z; // , (콤마)로 구분해서 동시에 선언 가능 (선언만) / 이름이 중복되면 안된다
변수 대입
· 변수 선언 후 값을 저장(대입)합니다. (대입 연산자(=) 사용)
· 메모리에 저장하기 때문에 할당이라고도 합니다.
· 저장(대입)하는 것을 초기화라고 합니다.
int a = 10; // a라는 변수명의 정수형 변수를 선언하고, 그 안에 10을 저장한다
int b = 590; // b라는 변수명의 정수형 변수를 선언하고, 그 안에 590을 저장한다.
변수 출력
· 실행문 System.out.println(); 을 사용하여 변수를 출력할 수 있습니다.
System.out.println(); 단축키 : sysout + Ctrl + Space Bar
int floor, floor2;
floor = 77; // floor 라는 변수에 77을 저장
floor2 = 45; // floor2 라는 변수에 45를 저장
//출력에서 사용
System.out.println(123); // 괄호안에 있는 내용을 출력한다.
System.out.println("문자는 큰따옴표로");
System.out.println(floor); // 변수를 출력
System.out.println(floor2); // 변수를 출력
코드의 진행방식
· 코드는 위에서 아래로 진행되기 때문에 선언 하지 않은 값은 출력될 수 없습니다.
// a = 20; // 변수의 선언 전에는 사용(접근)이 불가능하다 / 아래의 변수명 선언보다 먼저 나오면 안된다
int a = 10; // a라는 변수명의 정수형 변수를 선언하고, 그 안에 10을 저장한다
· 위에 있는 변수의 값을 아래에서 변경할 수 있습니다.
int b = 590; // b라는 변수명의 정수형 변수를 선언하고, 그 안에 590을 저장한다. (선언하면서 저장까지)
b = 600; // b라는 변수에 600을 저장하겠다.
연산자 계산
· 변수는 출력 시 연산자로 계산 가능합니다.
int humanFloor = 7; // 강의실 위치가 7층이라서 7을 저장
System.out.println(10 + 20 + 30); // + 연산자(숫자)로 계산이 가능하다!
System.out.println(10 + 7);
System.out.println(10 + humanFloor);
// 변수를 여러번 사용
System.out.println(humanFloor + humanFloor + humanFloor);
// 7 7 7
· 변수 + 숫자 출력 시, 숫자 계산이 됩니다.
· 변수 + 문자열 출력 시, 변수문자열이 됩니다. (문자열이 그대로 붙고 숫자 계산은 하지 않습니다.)
int floor = 7; // 7층 저장하려고 선언
System.out.println("floor");
System.out.println(floor);
System.out.println(10 + floor); // 10 + 7 = 17 숫자 계산
System.out.println("10" + floor); // "10"이라는 문자열에 floor 변수를 붙여서 출력
System.out.println(floor +10); // 7 + 10 = 17 숫자 계산
System.out.println(floor +"10"); // 7 + "10" = 710 문자열은 그대로 뒤에 붙는다.
· 변수를 이용하면 여러 곳을 변경할 때 편리합니다.
int floor = 7;
System.out.println("행정실은 " + floor + "층 입니다.");
System.out.println("강의실은 " + floor + "층 입니다.");
System.out.println("카드 찍는 곳은 " + floor + "층 입니다.");
System.out.println("행정실은 7층 입니다.");
System.out.println("강의실은 7층 입니다.");
System.out.println("카드 찍는 곳은 7층 입니다.");
floor = 8;
System.out.println("행정실은 " + floor + "층 입니다.");
System.out.println("강의실은 " + floor + "층 입니다.");
System.out.println("카드 찍는 곳은 " + floor + "층 입니다.");
System.out.println("행정실은 8층 입니다.");
System.out.println("강의실은 8층 입니다.");
System.out.println("카드 찍는 곳은 8층 입니다.");
// 코드가 여러 곳에 있고 수가 많다면 불가능한 일
// floor로 인해 변수 값 변경 시 한번에 바뀌기에 편리하다
변수를 활용한 시간 계산 예시
int hour = 3; // 시간을 저장하는 변수 3시
int minute = 24; // 분을 저장하는 변수 24분
System.out.println("3시 24분 입니다."); // 문자열 "3시 24분입니다."
System.out.println(hour+ "시 " + minute + "분 입니다.");
int totalMinute; // 3시간 24분 -> 총 몇 분인가?
totalMinute = 204; // 단순 숫자 204분
// 계산을 해서 넣어야 함
// 3시간 -> 1시간에 60분 -> 60 * 3 = 180 + 24 = 204분
totalMinute = (hour*60) + minute; // hour라는 변수에 60을 곱하고 minute 변수를 더한다 = 204분
System.out.println(totalMinute + "분 입니다.");
정수 리터럴
· 리터럴은 코드에서 프로그래머가 직접 입력한 값입니다.
· 정수 리터럴은 진수에 따라 작성하는 방법이 다릅니다.
※ 전화번호 입력 시, 숫자형으로 저장하면 안됩니다.
ex) 01012341234 '앞에' 010이 8진수로 되기 때문입니다.
2진수 | 0b 또는 0B로 시작하고 0과 1로 작성 |
8진수 | 0으로 시작하고 0~7로 작성 |
10진수 | 소수점이 없는 0~9 숫자로 작성 |
16진수 | 0x 또는 0X로 시작하고 0~9 숫자나 A,B,C,D,E,F 또는 a,b,c,d,e,f로 작성 |
// 리터럴 숫자
int a2 = 0b10; // 2진수로 10은 2
int a8 = 010; // 8진수로 10은 8
int a10 = 10; // 10진수
int a16 = 0x10;// 16진수
1.3 문자 타입
문자 리터럴
· 문자 리터럴은 ' (작은 따옴표)로 감싼 것입니다.
· 문자 리터럴은 유니코드로 변환되어 저장, 자바는 유니코드 저장을 위해 char 타입을 제공합니다.
· 유니코드는 정수이기 때문에 char 타입은 정수 타입과 문자 타입(1글자) 모두 사용 가능합니다.
//char (정수형이지만 문자형으로도 사용)
char c1 = 'A'; // 문자 하나 char 저장할 때는 ''작은 따옴표로 사용
char c2 = 65; //
System.out.println(c1);
System.out.println(c2);
1.4 문자열 타입
· " (큰 따옴표)로 감싼 문자들을 문자열이라 부릅니다.
· 문자열은 String 타입을 사용합니다.
//String 문자열 < 'S' 대문자
String s1 = "A"; // 문자열 타입을 나타내는 String, 문자열 저장은 "" 큰따옴표로 감싸서 사용
String s2 = "Americano";
System.out.println(s1);
System.out.println(s2);
문자열 타입을 활용한 예시
int hour = 5; // 시간을 저장하는 정수형 변수 hour 값 5를 저장
String comment = "시 입니다.";
System.out.println(hour + "시 입니다."); //hour 라는 숫자 + 문자열
System.out.println(hour + comment); //hour 라는 숫자 + comment 라는 문자열