본문 바로가기
Sketch (Programming Language)/Java

Java의 정석 Chapter 2. 변수

by 생각하는 이상훈 2022. 5. 13.
728x90

변수

"단 하나의 값을 저장할 수 있는 메모리 공간."

 

int age = 23; // 변수 age를 선언하고 23으로 초기화한다.

여느 프로그래밍 언어들과 같게 변수 탑입을 지정하고 변수 이름을 지어주고 초기화를 한다.

 

출력 방법

int age = 23;
System.out.println(age);

화면에 글자를 출력하려면 println()을 이용한다.


변수의 타입

 

상수와 리터럴

int year = 2022;
final int MAX_VALUE = 100;

final은 상수(constant)로 선언해 주는 키워드

 

위 코드에서 year는 변수, MAX_VALUE는 상수, 2022와 100은 리터럴이다.

 

정수형 리터럴에는 접미사 L이 실수형 float과 double에는 접미사 f와 d가 각각 붙는다.

이때 int와 double은 각각 정수형과 실수형의 기본 자료형이므로 생략이 가능하다.


printf()

값을 출력할 때 printf()를 사용하면 지시자(specifier)를 통해 변수의 값을 여러가지 형식으로 변환하여 출력할 수 있다.

다음 같이 출력될 값이 차지할 공간을 숫자로 지정해 줄 수 있다.

class PrintfEx1 {
	public static void main(String[] args) {
		byte  b = 1;
		short s = 2;
		char  c = 'A';

		int  finger = 10; 
		long big = 100_000_000_000L;       
		long hex = 0xFFFF_FFFF_FFFF_FFFFL ;  // long hex = 0xFFFFFFFFFFFFFFFFL;

		int octNum = 010;       //  8진수 10, 10진수로는 8
		int hexNum = 0x10;      // 16진수 10, 10진수로는 16
		int binNum = 0b10;      //  2진수 10, 10진수로는 2

		System.out.printf("b=%d%n", b);
		System.out.printf("s=%d%n", s);
		System.out.printf("c=%c, %d %n", c, (int)c);
		System.out.printf("finger=[%5d]%n",  finger);
		System.out.printf("finger=[%-5d]%n", finger);
		System.out.printf("finger=[%05d]%n", finger);
		System.out.printf("big=%d%n", big);
		System.out.printf("hex=%#x%n", hex); // '#'은 접두사(16진수 0x, 8진수 0)
		System.out.printf("octNum=%o, %d%n", octNum, octNum);   
		System.out.printf("hexNum=%x, %d%n", hexNum, hexNum);   
		System.out.printf("binNum=%s, %d%n", Integer.toBinaryString(binNum), binNum);  
	}
}

또한 소수점 자리수 컨트롤도 가능하다.

class PrintfEx2 {
	public static void main(String[] args) {
		String url = "www.codechobo.com";

		float f1 = .10f;   // 0.10, 1.0e-1
		float f2 = 1e1f;   // 10.0, 1.0e1, 1.0e+1
		float f3 = 3.14e3f;
		double d = 1.23456789;

		System.out.printf("f1=%f, %e, %g%n", f1, f1, f1); 
		System.out.printf("f2=%f, %e, %g%n", f2, f2, f2); 
		System.out.printf("f3=%f, %e, %g%n", f3, f3, f3);

		System.out.printf("d=%f%n", d);
		System.out.printf("d=%14.10f%n", d); // 전체 14자리 중 소수점 10자리

		System.out.printf("[12345678901234567890]%n");
		System.out.printf("[%s]%n", url);
		System.out.printf("[%20s]%n", url);
		System.out.printf("[%-20s]%n", url); // 오른쪽 정렬
		System.out.printf("[%.8s]%n", url);  // 왼쪽에서 8글자만 출력
	}
}

 

Scanner

Scanner클래스는 입력을 받을때 사용한다.

import java.util.*;    // Scanner를 사용하기 위해 추가

class ScannerEx { 
	public static void main(String[] args) { 
		Scanner scanner = new Scanner(System.in);

		System.out.print("두자리 정수를 하나 입력해주세요.>");

		String input = scanner.nextLine();
		int num = Integer.parseInt(input); // 입력받은 문자열을 숫자로 변환

		System.out.println("입력내용 :"+input);
		System.out.printf("num=%d%n", num);
	} 
}

 


형변환

 

형변환(casting)이란 서로 다른 타입간의 연산을 수행해야하는 경우 타입을 일치시키기 위해

변수나 리터럴을 다른 탑입으로 변환하는 것을 말한다.

 

double d = 85.4;
int score = (int) d; //score = 85

 

이와 같이 ()를 이용하여 형변환을 한다.

728x90