[Java의 정석] 조건문 - if (1)

말하는 감자·2023년 12월 10일
0

Java의 정석

목록 보기
31/32
post-thumbnail

Chapter 04 조건문과 반복문

프로그램의 흐름(flow)을 바꾸는 역할을 하는 문장들을 '제어문(control statement)'이라고 한다. 제어문에는 '조건문과 반복문'이 있는데, 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다.

1. 조건문 - if, switch

조건문은 조건식과 문장을 포함하는 블럭{}으로 구성되어 있으며, 조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행흐름을 변경할 수 있다.
조건문은 if문과 switch문, 두 가지가 있으며 주로 if문이 많이 사용된다. 처리할 경우의 수가 많을 때는 if문보다 switch문이 더 효율적이지만 switch문은 if문보다 제약이 많다.

📌 if문

if문은 가장 기본적인 조거문이며, 다음과 같이 '조건식'과 '괄호{}'로 이루어져 있다. 'if'의 뜻이 '만일 ~이라면...'이므로 '만일(if) 참(true)이라면 괄호{} 안의 문장들을 수행하라.'라는 의미로 이해하면 된다.

if (조건식) {
	// 조건식이 참(true)일 때 수행될 문장들을 적는다.
}
if (score > 60) {
	System.out.println("합격입니다.");
}

조건식 score > 60이 참(true)이면 괄호{} 안의 문장이 수행되어 화면에 "합격입니다."라고 출력되고 거짓(false)이면, if문 다음의 문장으로 넘어간다.

변수 score의 값이 80이라면

	score > 60
➡️	80 > 60
➡️	true	조건식이 참(true)이므로 괄호{} 안의 문장이 실행된다.

위 조건식의 결과는 true이므로 if문 괄호{} 안의 문장이 실행된다. 만일 조건식의 결과가 false이면, 괄호{} 안의 문장은 수행되지 않을 것이다.

📍 조건식

if문에 사용되는 조건식은 일반적으로 비교연산자와 논리연산자로 구성된다.
조건식을 작성할 때 실수하기 쉬운 것이, 등가비교 연산자 ==대신 대입 연산자 =를 사용하는 것이다. 자바에서 조건식의 결과는 반드시 true 또는 false이어야 한다는 것을 잊지 말자.

📍 블럭{}

괄호{}를 이용해서 여러 문장을 하나의 단위로 묶을 수 있는데, 이것을 '블럭(block)'이라고 한다. 블런은 '{'로 시작해서 '}'로 끝나는데, '}'다음에 문장의 긑을 의미하는 ';'을 붙이지 않는다는 것에 주의하자.
블럭 내의 문장들은 탭(tab)으로 들여쓰기(indentation)를 해서 블럭 안에 속한 문장이라는 것을 알기 쉽게 해주는 것이 좋다. 탭(tab)은 키보드의 맨 왼쪽에 있다.

블럭의 시작을 의미하는 '{'의 위치는 아래와 같이 두 가지 스타일이 잇는데, 각 스타일마다 장단점이 있으므로 본인의 취향에 맞는 것으로 선택해서 사용하면 된다. 왼쪽의 스타일은 라인의 수가 짧아진다는 장점이, 오른쪽의 스타일은 블럭의 사작과 끝을 찾기 쉽다는 장점이 있다.

블럭 안에는 보통 여러 문장을 넣지만, 한 문장만 넣거나 아무런 문장도 넣지 않을 수 잇다. 만일 블럭 내의 문장이 하나뿐 일 때는 아래와 같이 괄호{}를 생략할 수 있다.

if (score > 60)
	System.out.println("합격입니다.");

또는 아래와 같이 한 줄로 쓸 수도 있다.

if (score > 60) System.out.println("합격입니다.");

이처럼 블럭 내의 문장이 하나뿐인 경우 괄호{}를 생략할 수 있지만 가능하면 생략하지 않고 사용하는 것이 바람직하다. 나중에 새로운 문장들이 추가되면 괄호{}로 문장들을 감싸 주어야 하는데, 이 때 괄호{}를 추가하는 것을 잊기 쉽기 때문이다.

if (score > 60)
	System.out.println("합격입니다.");	// 문장1. if문에 속한 문장
    System.out.println("축하드립니다.");	// 문장2. if문에 속한 문장이 아님

📑 원본 자료

  • Java의 정석(3판) [남궁 성/도우출판/2016]
profile
나는 말하는 감자다

0개의 댓글