상세 컨텐츠

본문 제목

[JAVA ] 쉬운 자바 문법_조건문(if, else if)은 어떻게 공부해야 할까?

java_자바

by 쫑메이 2020. 6. 3. 00:02

본문

 

 

 


 

 

 

 

 

 

 

 

 

자, 만약이라는 가정의 뜻만 알고 있던 if가

자바에서는 조건문 대장으로 쓰인다는 사실!!

 

자바에서 조건문이란

조건식과 실행 문장을 포함한 블록으로 구성된다

 

크게if 계열과 switch~ case로 나뉜다

그중 모든 상황에서 사용할 수 있는 기본적인 조건 문인

if를 먼저 볼까요?

 

 

 

자, 들여다볼까요?

 

 

 

조건문(if 문)

 

 


 

 

<조건문이란?>

 

조건식 결과에 따라 실행할 문장이 달라지는 문

-if 문 계열과 switch ~ case 문으로 구분

 

 

 

 

<조건문_ if 문>

- 가장 단순한 조건문

조건식 판별 결과가 true 일 때 특정 문장(블록)을 추가로 실행하는 if 문

 

 

 

 

 

 

 

<조건문_ if 문 예시>

 

 

 

 

 

 

 

if문 찹 쉽죠?

 

 

 

 


 

 

 

 

 

<if ~ else 문>

 

특정 조건식 판별 결과가 true 일 때와 false 일 때 서로 다른 블록을 실행

- 삼항연산자와 유사한 형태로 수행되나 삼항연산자보다 유연함

 

 

 

 

<if ~ else 문_ 기본 문법>

 

문장 1;

if(조건식) {

조건식 판별 결과가 true 일 때 실행할 문장들...

문장 2;

}

* 문장 3;

=> 조건식 판별 결과가 true 일 때 : 문장 1 -> 조건식(true) -> 문장 2 -> 문장 3

=> 조건식 판별 결과가 false 일 때 : 문장 1 -> 조건식(false) -> 문장 3

 

 

 

 

문장 1;

if(조건식) {

문장 2; // 조건식 결과가 true 일 때 수행할 문장들...

} else {

문장 3; // 조건식 결과가 false 일 때 수행할 문장들...

}

 

 

 

 

 

 

<if ~ else 문_예시>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

<중첩_ if 문>

 

if 문 등의 블록 내에서 또 다른 if 문을 사용하여 조건식을 판별하기 위해

if 문을 여러 번 중첩시키는 것

 

 

 

 

<중첩 if 문_기본 문법>

 

 

 

 

 

 

 

 

 

 

<중첩 if 문_예제>

 

int score=88;

String grade="";

 

if(score>=0&&score<=100) {

if(score>=90&&score<=100) {

System.out.println("A"+"학점");

}else if(score>=80&&score<90){

System.out.println("B"+"학점");

}else if(score>=70&&score<80){

System.out.println("c"+"학점");

}else if(score>=60&&score<70){

System.out.println("D"+"학점");

}else {

grade="F";

}

System.out.println("학점"+grade);

}else {

System.out.println("점수 입력 오류!");

 

 

 

 

 

 

 

 

 

 


 

<Dangling Else issue란?>

중괄호를 생략했을 때 생길 수 있는 오류.

왜> else 문은 가장 가까운 위쪽 if 문과 쌍을 이룬다

 

 

int num1 = 128, num2 = 256;

if (num1 > num2)

if (num1 > 100)

System.out.println("num1은 " + num1);

else

if (num2 > 100)

System.out.println("num2는 " + num2);

 

 

위의 코드를 실행하면 아래와 같은 코드 형태로 실행됨

=> else 문은 바로 위에 있는 if(num > 100)의 if 문과 쌍을 이루기 때문에

첫 번째 if(num1 > num2) 조건 판별 결과가 false일 경우 아무것도 실행되지 않음

if (num1 > num2) {

if (num1 > 100) {

System.out.println("num1은 " + num1);

} else {

if (num2 > 100) {

System.out.println("num2는 " + num2);

}

}

 

 

 

 

 

 

 

 

 

<Dangling Else issue_오류 막는 방법>

 

중괄호를 생략하지 않고 명확한 형태로 작성해야 논리적 오류를 막을 수 있다!

if (num1 > num2) {

if (num1 > 100) {

System.out.println("num1은 " + num1);

}

} else {

if (num2 > 100) {

System.out.println("num2는 " + num2);

}

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

부족한 글을 읽어주셔서 감사드립니다

아직 부족한 게 많으니

틀린 곳이 있다면

조언의 말씀 꼭 부탁드립니다!!!!

 

 

 

 

 

 

 

 

 

반응형

관련글 더보기