> 1. 변수
변수란 특정 값을 담는 상자의 주소 또는 이름이라고 이해하면 될 것 같다.
변수를 선언할 때 이름짓고 불러올 때 해당 이름으로 불러온다. 불러오면 변수 안에
저장되어 있던 값을 활용할 수 있다.
1-1. 변수 선언과 호출
변수를 선언할 때 필요한 세가지가 있다.
변수의 타입
변수의 이름
변수의 초기값(선택)
아래는 변수의 선언과 호출 예시이다.
> int i = 10
(타입) (이름) = (초기값)
system.out.print(i)
- 출력 결과
10
> > 2. 변수의 타입
변수의 기본 타입은 정수, 실수, 논리가 있다.
2-1. 정수 타입의 각 차이점
정수 타입의 각 차이점은 char 말고는 저장용량의 차이밖에 없다고 봐도 무방하다.
char는 좀 특이한데 음수를 저장할 수 없으며 숫자를 문자로 변환할 수 있다.
예를 들어
char a = 65
라고 저장했을 때 호출하면 유니코드 65에 해당하는
대문자 A가 출력되는 것을 볼 수 있다.
2-2. 실수 타입의 각 차이점
실수 타입에는 float과 double이 있다.
개인적으로 저장용량도 높고 사용하기도 편한 double을 자주 사용할 것 같다.
- 첫 번째 차이점
첫번 째 차이점으로는 위에서 말한 것 처럼 저장 용량의 차이이다. double 타입이 값의
허용 범위가 훨씬 넓다
- 두 번째 차이점
사용 방법에서 차이가 있다. float타입의 경우 조금 불편하다고 볼 수 있는데 값을 저장할 때
float 타입임을 명시해줘야한다.
**
float f = 3.14F;
double b = 3.14;
위 예시처럼 float은 float 타입임을 명시해줘야하는 반면에 double은 정수 타입처럼
그냥 사용해도 되는 것을 알 수 있다.
> 3. 논리 타입
논리 타입은 참과 거짓을 분별하는 변수로 true와 false를 저장할 수 있다.
주로 조건문에 많이 사용되며 참이면 ~~ 실행 거짓이면 ~~ 실행 이런 식으로 구분짓는 역할을 한다.
*예시
boolen stop = true;
if(stop){
System.out.print("중지합니다.");
}else{
- if문은 true면 실행한다.
위에서 stop이 true로 저장됭었식 떄문에 else 구문은
실행되지 않는다.
}
변수의 타입 변환
자바는 자동으로 타입을 변환해주는 기능이 있다. 허용 범위가 작은 타입이 허용 범위가 큰 타입에
저장될 때 자동으로 변환된다.
*예시
byte b = 10;
int i = b; -> 자동 타입 변환( byte -> int )
큰 허용 범위의 타입은 작은 허용 범위의 타입으로 변환될 수 없다. 하지만 강제 타입 변환을 사용하면
모두 변환할 수는 없을지라도 일부는 변환해서 변환할 수 있다.
*예시
int i = 10
byte b = (byte)i -> (강제 타입 변환할 타입)i
char의 경우는 조금 재미있다. int 타입에 저장된 숫자를 char 타입으로 변환하면 해당 유니코드의
문자가 출력되기 때문이다.
*예시
int i = 65
char c = (char)i
// 65에 해당하는 문자 A가 출력
정수 타입 변수가 연산식에 의해 피연산자로 사용되면 int 타입보다 작은 byte, short 타입의
변수는 int 타입으로 자동 변환된다.
*예시
byte x = 10;
byte y = 20;
int result = x + y;
- byte 타입인 x와 y는 int보다 허용 범위가 작은 타입이다. 때문에 연산 결과가
int result에 int 타입으로 변환되어 저장될 수 있다.
// 30이 출력된다.
실수 연산자에서 피연산자 중 하나가 double 타입이면 다른 피연산자도 double 타입으로
자동 변환되어 연산을 수행한다. 따라서 결과도 double 타입으로 나오게 된다.
자바에서 + 연산자는 피연산자가 모두 숫자일 때는 덧셈을 연산하지만, 하나라도 문자열일 경우는
나머지 하나도 문자열로 변환되어 연산한다.
*예시
String str = 3 + "7";
- 숫자에 ""를 붙이면 문자열로 인식한다. 따라서 출력 결과는 10이 아니라 37이 나온다.
-> 3이라는 숫자가 문자열 "7"과 연산됐기 때문에 "3"으로 변환되어 단순히 두 문자열을 나열한
37이 출력되는 것이다.
반대로 문자열을 기본 타입으로 강제 변환할 수 있다.
String -> byte
String str = "10";
byte b = Byte.parseByte(str);
(타입 변수명 = 타입.parse타입(변수);)
화면에 무언가를 출력하기 위해서는
System.out.println()를 사용할 줄 알아야한다.
prinln() 메소드 () 안에 리터럴이나 변수를 넣으면 입력한 값이 출력되고 줄을 바꾼다.
다른 종류로는
print()와 printf()가 있는데 print()는 입력한 내용을 그대로 출력하는 반면에
printf는 사용법이 조금 복잡한 반면 범용성이 넓다고 볼 수 있다.
printf("형식문자열", 값1, 값2,....);
*printf() 예시
System.out.printf("과목 : %s\n", "자바") -> \n은 줄바꿈을 뜻한다.
System.out.printf("수업시간 : %d시 부터 %d시 까지", 3, 9)
// 출력결과
과목 : 자바
수업시간 : 3시 부터 9시 까지
자바 유틸 Scanner를 사용하기 위해서는 먼저 최상단에 선언하여 임포트하고 사용해야한다.
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
String input; //String 타입의 변수 선언
while(true) { //true 이므로 breake를 만나기 전까지 계속 반복
input = scaanner.nextLinee() -- 엔터를 입력하기전 까지 대기 상태
System.out.println("입력된 문자열 : \"" + input + "\"");
if(input.equals("end"){ -- breake를 실행할 조건문
breake;
}
}
// 출력 결과
a
입력된 문자열 : "a"
end
입력된 문자열 : "end"
종료