Post

변수

변수

변수란 값을 저장할 수 있는 메모리 특정 번지에 붙여진 이름, 변수를 통해서 메모리 번지에 하나의 값을 저장하고 읽을 수 있다

 

변수 선언

변수를 사용하기 위해서 변수선언이 필요하다

1
2
3
int x,y,z; //같은 타입들은 같이 선언가능
int a;
int b; 

 

변수명 규칙

  • 첫 글자는 문자이거나 ‘$,’_’ 이어야 하고 숫자로 시작할 수 없다
  • 영어 대소문자 구분
  • 첫 문자는 소문자로 시작 다른 단어가 붙으면 첫문자를 대문자 (클래스는 대문자 시작)
  • 문자 수의 길이 제한은 없다
  • 자바의 예약어 사용 불가능(new, int, private, class, enum, if, true, final 등)

 

변수 사용

1
2
3
4
int hour = 3;
int minute = 50;
System.out.println = (hour + "시" + minute + "분"); //3시 50분 출력

 

변수 사용 범위

로컬 변수는 해당 블록에서만 사용가능

1
2
3
4
5
6
7
8
9
10
public static void main(String[] args){
  int val1; //val1만 사용가능
  if(val>1){
    int val2;  // val1,val2사용가능 val3사용 불가능
  }
  while(i<10){
    int val3; // val1,val3사용가능 val2사용 불가능
  }
  //val1만 사용가능
}

전역변수는 메소드 밖에 존재하는 변수있다 생명주기는 클래스가 끝날 때

 

변수 타입

총 8개의 기본 타입은 제공한다

  • 정수 타입: byte, char, short, int, long
  • 실수 타입: float, double
  • 논리 타입: boolean

 

char 타입

하나의 문자를 저장할 수 있다

1
2
char car1 = 'A'; //유니코드 65저장
char c = 65; //정수형태의 유니코드 저장

String 타입

char에는 문자열을 저장할 수 없다 그래서 String타입에 저장한다

1
2
String str1  = "adfsadfasf";
String str2  = "안녕하세요";

문자열 출력 제어

이스케이프 문자출력 용도
\t탭만큼 띄움
\n줄바꿈
\r캐리지 리턴 (커서 맨앞 이동)
\”“출력
\’‘출력
\\\출력

 

실수 타입

소스코드에서 소수점이 있는 리터럴은 10진수 실수로 인식

알파벳 e가 포함된 숫자 리터럴은 지수및 가수 표현된 소수점이 있는 10진수로 인식

10e2 -> 10.0 * 10*2 = 1000.0

자바는 기본적으로 실수 리터럴을 double타입으로 인식

1
2
3
4
float var =3.14 //컴파일 오류
double var2 = 4.12
 
float var = 3.14f //float타임으로 저장할려는 경우 F,f를 끝에 입력

 

 

타입 변환

데이터를 다른 타입의 데이터 타입으로 변환 시키는 과정

  • 자동 타입 변환
    • 큰 타입 = 작은 타입 변수 값 -> 작은 타입이 큰 타입에 저장되는 경우
    • byte < short < int < long < float < double
    • char 타입이 int형으로 바뀌면 유니코드가 저장된다
  • 강제 타입 변환
    • 작은 타입 = 큰 타입 -> 강제로 한 조각만 저장된다
    • byte a = (byte) intValue;

실수를 연산할 때 타입 변환의 주의가 필요

 

  • 문자열 강제 타입 변환
    • Byte.parseByte(str);
    • Short.parseByte(str);
    • Integer.parseInt(str);
    • Boolean.parseBoolean(str);
  • 기본 타입 -> 문자열 String.valueOf(3);

 

 

시스템 출력

  • System.out.print(내용);
  • System.out.println(내용); 출력 후 줄 바꿈
  • System.out.printf(형식 문자열);
    • 형식 문자열에 포함될 값 2가지 이상인 경우 순서를 표시
      • System.out.printf(“이름 : %1$s 나이 : %2$d”,”김민정”,26); -> 이름:김민정 나이:26
    • 정수형
      • %d
      • %6d 6자리 정수 왼쪽 빈 공백 출력 ___123
      • %-6d 6자리 정수 오른쪽 빈 공백 출력 123___
      • %06d 6자리 정수 빈자리 0으로 출력 000123
    • 실수
      • %10.2f 소수점 이상 7자리 소수점 이하 2자리 왼쪽 빈자리 공백 ___123.12
      • %-10.2f 소수점 이상 7자리 소수점 이하 2자리 오른쪽 빈자리 공백 123.12___
      • %010.2f 왼쪽 빈자리 0으로 채움 0000123.12
    • 문자열
      • %6s 문자열 왼쪽 공백 ___asd
      • %-6s 문자열 오른쪽 공백 asd___

 

 

시스템 입력

Scanner클래스를 이용하면 입력을 받을 수 있다

1
2
3
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
String inputData = scanner.nextLine(); // 엔터 이전까지 문자열을 inputData에 저장한다

기본 타입 값과 문자열 비교

기본 타입 일때는 == 를 이용해서 값을 비교한다

문자열의 비교는 equals()메소드 사용

1
boolean result = inputData.equals("aas");

같다면 true, 다르면 false가 저장된다

This post is licensed under CC BY 4.0 by the author.