본문 바로가기
IT관련/JAVA_정리 노트

조건문 기초

by XoX 2020. 4. 14.
728x90
개인적인 메모를 위해 작성된 글이므로 가벼운 참고용으로 봐주세요.

 

■ 조건문

조건을 입력하여 그 조건에 따라 다르게 실행되도록 프로그래밍하는 역할

 

 

조건문 쓰는 법
class Main {
  public static void main(String[] args) { 
    if (true나 false로 판명되는 결과값){ 
    } 

    if (true나 false로 판명되는 결과값){ 
    } 

    else if(true나 false로 판명되는 결과값){ 

    } 

    else{ 

    } 

  } 

 

첫번째줄 if 의 소괄호()안이 true로 판명되면 첫번째 중괄호{}안이 실행되고

false가 되면 중괄호{}안이 실행되지 않는다.

 

그리고 두번째줄이 if일 때는 그걸 실행시킨다.(else if나 else라면 실행시키지 않는다.)

그래서 두번째 if의 소괄호()안이 true로 판명되면 두번째 중괄호{}안이 실행되고

false가 되면 중괄호{}안이 실행되지 않는다.

 

그렇게 세번째 줄로 넘어가서 if문이 아닌 else if문이 나왔다.

앞의 if문중 단 하나라도 true가 나오면 이건 실행하지 않는다.

그러나 앞의 if문 모두가 false로 판명되면

그때 else if가 실행된다.

else if의 소괄호()안이 true로 판명되면 그것의 중괄호{}안이 실행되고

false가 되면 중괄호{}안이 실행되지 않는다.

 

마지막 else는 여태까지의 조건문의 결과 중 단 하나라도 true가 나오면 실행되지 않고

false가 나왔다면 무조건 실행된다. 양립하지 않는(정답이 무조건 1개인) 조건에서 else를 쓰면 
참이 나오면, else가 등장하는 구문은 실행하지 않는다는 뜻이다. 

 

 

 

 

■ 조건문에서 쓰이는 약속들
*이하,미만,초과,이상
<=
<
>
>=
'='은 괄호 뒤에 써줘야한다. 앞에 써주면 오류가 난다! 

*&&의 뜻
else if (age>=40 && age<50) {
}
&(그리고)를 두번 써면 &&이 되면 양쪽이 참이어야만 한다는 뜻이다. 한쪽이라도 거짓이면 실행되지 않는다.

 

*  ==  →  같다 
*  !=  →  같지않다 
*  !  →  반전 
*  boolean c  →  c 에는 오직 true/false 만 담을 수 있다. 
*  i++  →  i 의 값을 1 증가 시킨다. 
*  i--  →  i 의 값을 1 감소 시킨다. 
*  i = i + 2  →  i 의 값을 2 증가 시킨다. 
*  i += 2  →  i의 값을 2 증가 시킨다.(위와 같은 표현) 
*  i = i - 2  →  i 의 값을 2 감소 시킨다. 
*  i -= 2  →  i 의 값을 2 감소 시킨다.(위와 같은 표현) 

 

 

 

■ 조건문 다른 예시

else if(age<20){

System.out.println("10대입니다.");

}

"10대 입니다."를 출력하는 else if의 조건문에 age>=10 && age<20 라고 적지 않고

age<20이라고만 적었다. 이렇게 써도 될까?

 

else if문이 실행된다는 것은 앞의 if문(1~9살)이 거짓이라

두번째로 넘어온 것이기 때문에 age>=10가 자동적으로 참이 돼서 age<20 조건만 따져보면 된다.
세번째문장으로 넘어왔다면 첫번째 문장(1~9살)과 두번째문장(10~20살)이 거짓이라는 뜻이므로
age>=20가 자동적으로 참이 돼서 age<30 조건만 따져보면 된다.

 

그리고 else는 위의 문장이 거짓이기때문에 마지막 까지 온 것이기 때문에
마직막 문장은 무조건 참이 되므로 else if중 if를 빼고
else{
  System.out.println("30대이상입니다.");
라고 써도 된다.

그래서 else를 쓰면 조건문을 쓸 때 효율적으로 실행(결론 내리는 속도가 빨라질 수 있다.) 

 


조건문 소괄호 안쪽 (20>2 && 10>3 && true!=false && 10!=10)을 실행하는 과정
1단계 : true && 10>3 && true!=false && 10!=10
2단계 : true && true && true!=false && 10!=10
3단계 : true && true!=false && 10!=10
4단계 : true && true && 10!=10
5단계 : true && 10!=10
6단계 : true && false
7단계 : false


 

■ 참고로, a:5 b:10 으로 출력하던 소스코드를 a:10 b:5로 출력되게 수정하는 방법 3가지 
class Main { 
  public static void main(String[] args) { 
  int a=5; 
  int b=10; 
  system.out.println("a:"+a); 
  system.out.println("b:"+b); 
  } 


a:5 
b:10' 
라고 출력된다. 

 

 

그런데 a:10 b:5 라는 출력을 얻고 싶다면 어떻게 수정해야 되나?

 

 

방법1) a와 b를 숫자로 재정의

 

class Main { 
  public static void main(String[] args) { 
  int a=5; 
  int b=10; 

  a=10; 
  b=5; 

  system.out.println("a:"+a); 
  system.out.println("b:"+b); 
  } 

 

 


방법2) a와 b를 서로 바꿈 


class Main { 
  public static void main(String[] args) { 
  int a=5; 
  int b=10; 

  a=b; 
  b=a; 

  system.out.println("a:"+a); 
  system.out.println("b:"+b); 
  } 

 

 


방법3) 다른 변수(공간)에 a의 데이터를 담아 놓고 a와 b를 서로 바꿈 


class Main { 

  public static void main(String[] args) { 
  int a=5; 
  int b=10; 

  int c=a; 
  a=b; 
  b=c; 

  system.out.println("a:"+a); 
  system.out.println("b:"+b); 
  } 

 

int c 를 이용해서 a안의 내용물을 공간 c를 창조하여 그 안에 담아놓고(백업해놓고) 
a=b를 사용하고 다시 b에는 공간c안에 있던 내용물(a의 내용물)을 담아준다.

 

별 것 아닌 것 같은데

방법3는 추후에 반복문+조건문에서 긴요하게 쓰이기때문에 꼭 알아두어야 한다.

728x90
반응형

'IT관련 > JAVA_정리 노트' 카테고리의 다른 글

객체 기초  (0) 2020.04.16
형변환 기초  (0) 2020.04.15
print println pritf 차이점  (0) 2020.04.15
템플릿 기초  (0) 2020.04.14
자바를 배울 때 첫번째로 알아야 하는 것  (0) 2020.04.09

댓글