Cute Running Puppy

Language/[Java] 혼자 공부하는 자바

[혼자공부하는자바] chapter 02. 변수와 타입

R.silver 2021. 7. 16. 17:10
반응형

02-1. 변수

변수 선언

변수의 저장할 데이터의 타입과 변수 이름을 결정

 

//변수 선언 방법 
//타입 변수이름
int x;
double y;
int a, b, c; //동시에 여러개 선언 가능

변수 이름 작성 규칙

  • 숫자로 시작할 수 없다 
  • 문자로 시작하거나 $, _ 로 시작해야 한다
  • 대소문자 구분
  • 첫 문자는 소문자로 그 뒤 다른 단어 붙을 경우 첫 문자를 대문자로 
    • studentName, bookColor 등
  •  예약어 사용 불가 

값 저장

대입 연산자: = 

오른쪽의 값을 왼쪽에 저장

 

//변수 x에 3 저장
int x; //변수 선언
x = 3; //값 저장

 

값을 초기화하지 않고 변수를 통해 메모리 값을 읽을 수 없음

//변수를 초기화하지 않고 메모리 값을 읽음 -> 에러
int x;
int result = x + 3;

변수 사용

println() 메소드

 

//println() 메소드 사용법
System.out.println(month + "월" + day + "일");

변수 사용 범위

로컬 변수: 메소드 블록 내부에서만 사용 가능한 변수, 메소드 실행이 끝나면 메모리에서 자동으로 사라짐

 

02-2. 기본 타입 

기본 타입: 정수, 실수, 논리 값을 저장할 수 있는 곳

저장 되는 값  타입 종류 
정수 byte, char, short, int, long
실수 float, double
논리 boolean

 

자주 사용되는 이스케이프 문자

이스케이프 문자 용도
\t 탭 크기 만큼 띄우기
\n 줄바꿈
\r 캐리지리턴
\" " 출력
\' ' 출력
\\ \ 출력
\u16진수 16진수 유니코드에 해당하는 문자 출력

02-3. 타입 변환

자동 타입 변환

허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생 

 

byte byteValue = 10;
itn intValue = byteValue;
//타입이 자동으로 변경된다

 

주의

char는 음수를 포함하지 않기 때문에 byte는 char로 변환이 불가능하다 

강제 타입 변환 

큰 허용 범위 타입을 작은 허용 범위 타입으로 강제로 저장하는 것

 

int intValue = 10;
byte byteValue = (byte)intValue;
//강제로 타입 변환된다

02-4. 변수와 시스템 입출력   

메소드 의미
println() 괄호 안의 내용을 출력한 뒤 행을 바꿔라
print() 괄호 안의 내용을 출력하라
printf() 괄호 안의 첫번째 문자열의 형식대로 내용을 출력하라
//printf() 메소드 사용 예시
System.out.printf("오늘은 %d월 %d입니다.\n", month, day);

키보드에서 입력된 내용을 변수에 저장하기 

 

System.in.read()

 

예제 1

//키코드를 변수에 저장한 뒤 출력하는 코드
	public static void main(String[] args) throws Exception{

		int keyCode = System.in.read();
		System.out.println("key code: " + keyCode);
	}

 

예제 2

//q를 입력하면 반복이 종료되는 코드
public static void main(String[] args) throws Exception{

		while (true) {
			int keyCode = System.in.read();
			System.out.println("key code: " + keyCode);
			
			if (keyCode == 113) { //key code 113 == 'q'
				break;
			}
		}

 

실행 결과

3
key code: 51
key code: 13
key code: 10
2
key code: 50
key code: 13
key code: 10
q
key code: 113

 

System.in.read()는 키 코드를 한 개씩만 읽을 수 있다. 

2개 이상의 키가 조합된 글자를 받기 위해서는 

Scanner 클래스를 사용한다. 

 

예제 3

//키보드에서 입력된 내용을 문자열로 얻는 코드
package sec04.exam05;

import java.util.Scanner; //Scanner를 import

public class ScannerExample {

	public static void main(String[] args) throws Exception{

			Scanner scanner = new Scanner(System.in); //Scanner 타입 변수 scanner 선언
			String inputData;
			
			while (true)
			{
				inputData = scanner.nextLine(); //문자열을 입력받기 
				System.out.println("입력된 문자열: \"" + inputData + "\"");
				
				if (inputData.equals("q"))
				{
					break;			
				}
			}			
			System.out.println("종료");
		}
}

 

실행 결과

안녕하세요
입력된 문자열: "안녕하세요"
a
입력된 문자열: "a"
q
입력된 문자열: "q"
종료
반응형