1. 논리 타입
논리 리터럴은 참과 거짓을 의미하며 true와 false로 이루어져 있다. 논리 리터럴은 boolean 타입 변수에 아래와 같이 대입이 가능하다.
boolean t = true;
boolean f = false;
boolean 타입 변수는 주로두 가지 상태값을 저장할 필요가 있을 경우에 사용되며, 상태값에 따라 조건문과 제어문의 실행 흐름을 변경하는 데 사용할 수 있다.
또한 연산식 중에서 비교 및 논리 연산의 산출값은 true 또는 false이므로 boolean 타입 변수에 대입이 가능하다. 아래를 참고하자.
int x = 10;
boolena result = (x == 20); //변수 x의 값이 20인가? / False
boolena result = (x != 20); //변수 x의 값이 20이 아닌가? / True
boolena result = (x > 20); //변수 x의 값이 20보다 큰가? / False
boolena result = (0 < x && x < 20); //변수 x의 값이 0보다 크고, 20보다 작은가? / True
boolena result = (x < 0 || x > 200); //변수 x의 값이 0보다 작거나 200보나 큰가? / False
아래는 stop 변수값에 따라 if 블록과 else 블록 중 하나를 실행하고, 연산식의 결과를 boolean 변수에 저장해서 출력한다.
package ch02.sec05;
public class BooleanExample {
public static void main(String[] args) {
boolean stop = true;
if(stop) {
System.out.println("중지합니다.");
} else {
System.out.println("시작합니다.");
}
int x = 10;
boolean result1 = (x == 20);
boolean result2 = (x != 20);
System.out.println("result1: " + result1);
System.out.println("result2: " + result2);
}
}
변수 stop이 true로 지정되어 있으므로 if가 참이 되어 '중지합니다'가 출력된다. 변수 x는 10이라는 값을 가졌으며 x == 20이 거짓이므로 false, x != 20은 참이므로 true가 출력된다.
2. 문자열 타입
작은따옴표(')로 감싼 한 개의 문자는 char 타입의 문자 타입이지만, 큰따옴표(")로 감싼 여러 개의 문자들은 유니코드로 변환되지 않는다.
char var1 = "A"; //컴파일 에러 발생
char var2 = "청야"; //컴파일 에러 발생
큰따옴표(")로 감싼 문자들은 문자열이라고 부르는데, 위와 같이 오류가 나지 않기 위해서는 문자열을 String 타입을 사용하여 변수에 저장해야한다.
String var1 = "A";
String var2 = "청야";
문자열 내부에는 이스케이프 문자를 사용할 수 있다. 역슬래쉬(\)를 붙여서 사용하며 이스케이프 문자를 사용하면 특정 문자를 포함할 수 있고, 출력에 영향을 미치게 할 수 있다.
참고로 역슬래쉬는 기호가 \가 아닌, ₩(짝대기 하나인건 찾지 안보여서 대체)처럼 표시될 수 있는데, 이것은 폰트 차이이니 신경쓰지 않아도 괜찮다.
이스케이프 문자 | |
\" | "문자 포함 |
\' | '문자 포함 |
\\ | \문자 포함 |
\u16진수 | 16진수 유니코드에 해당하는 문자 포함 |
\t | 출력 시 탭만큼 띄움 |
\n | 출력 시 줄바꿈(라인피드) |
\r | 출력 시 캐리지 리턴 |
package ch02.sec06;
public class StringExample {
public static void main(String[] args) {
String name = "청야";
String job = "프로그래머";
System.out.println(name);
System.out.println(job);
String str = "나는 \"자바\"를 배웁니다."; //\"를 사용시 문자열에 큰따옴표를 넣을 수 있다.
System.out.println(str);
str = "번호\t이름\t직업"; //\t를 사용시 문자열 간격을 탭만큼 띄워 출력한다.
System.out.println(str);
System.out.print("나는\n자바를\n"); //\n를 사용시 출력 후 다음 행으로 이동이 된다.
System.out.print("배웁니다.");
}
}
참고로 Java13부터는 아래와 같은 텍스트 블록 문법을 제공한다. 큰따옴표 3개로 감싸면 이스케이프하거나 라인 피드를 할 필요가 없이 작성된 그대로 문자열로 저장된다.
//문자열 타입
package ch02.sec06;
public class TextBlockExample {
public static void main(String[] args) {
//Java 13부터 사용 가능한 텍스트 블록 문법이다.
String str1 = "" +
"{\n" + //\n은 줄바꿈이다.
"\t\"id\":\"winter\",\n" + //\t는 탭만큼 띄우기, \"는 큰따옴표(") 출력이다.
"\t\"name\":\"눈송이\"\n" +
"}";
String str2 = """
{
"id":"winter",
"name":"눈송이"
}
""";
System.out.println(str1);
System.out.println("---------------------------------------------------");
System.out.println(str2);
System.out.println("---------------------------------------------------");
//줄바꿈을 하고 싶지 않은데 편의상 줄을 바꿔서 코드를 짜야한다면 끝에 \를 붙여주면 된다.
//이 기능은 Java 14부터 제공한다.
String str = """
나는 자바를 \
학습합니다.
나는 자바 고수가 될 겁니다.
""";
System.out.println(str);
}
}
'Language > Java' 카테고리의 다른 글
[Java] 키보드 입력 데이터를 변수에 저장 (0) | 2022.10.04 |
---|---|
[Java] 변수 사용 범위와 콘솔로 변수값 출력 (0) | 2022.09.28 |
[Java] 타입 변환 (0) | 2022.09.27 |
[Java] 변수에 대한 이해_1 (정수, 문자, 실수 타입) (2) | 2022.09.20 |
[Java] 자바 시작하기 (0) | 2022.09.14 |