조건문 (if, switch) > 학습자료 | IOTsw_u2 U2 Project
학습자료

JAVA 조건문 (if, switch)

본문

조건문 (if, switch)


자 오늘 파트는 조건문이다.
조건문은 if - else 와 switch - case - default 두가지며 외울때 같이 외워두는것이 좋다.
참고로 필자는 switch를 쓸때 default를 같이 안외워서 그런지 계속 까먹는다.

조건문의 기본 성질은 true 와 false의 값을 가진다는 것이다.
(조건문을 쓸때 true와 false의 값을 가지지 않는 회색분자가 나오게 되면 그 프로그램은 오류가 발생하게 된다.)
조건문은 하나의 식 (이제부터 조건식이라고 부르겠다.)을 꼭 가지고 있는데 그 조건식이
true냐 false냐에 따라 출력이 달라지는 것이다.




if문. 

첫번째로 if문에 대해 알아보자.
if문은 가장 일반적으로 사용하는 조건문이며 기본공식은 아래와 같다.

 if (조건식){ true }
else{  false }

먼저 if문을 선언한뒤 조건식을 적어 넣는다.
(if문의 조건식은 무조건 true나 false를 반환하는 식이나 메소드가 들어와야 된다. )
그 조건식이 true면 위 { true } 안에 적힌 식들이 실행될것이며
false이면 위 { false } 안에 적힌 식들이 실행될것이다.

간단한 예제로 확실히 알아보자.

if ( a >= 0 ) //if 선언하고 조건문을  a >= 0으로 두었다.

   {  

    System.out.println("a 양수이다"); 

   } //{}안에 "a 양수이다 프린트하라고 명령을 내렸다.

   else{ System.out.println("a 음수이다");

   } //{}안에 "a 음수이다 프린트하라고 명령을 내렸다.


위 식에서 a의 값이 양수이면 조건식이 true가 되면서 "a는 양수이다"를 프린트 할것이고
a의 값이 음수이면 조건식이 false가 되면서 "a는 음수이다"라고 프린트 할것이다.

이처럼 true와 false의 값에 따라 서로 출력하는 값이 달라지게 만드는것이 조건문이다.
몇가지 if의 특성을 간단히 말해보면

1. { }를 쓰지 않아도 조건식 뒤의 한줄 ( ; 으로 구별하기 전까지가 한줄이다) 의 명령은 실행된다.
    ( 이말은 true일때 2가지의 식을 수행해야되는데 1가지의 식밖에 안된다는것이다 하지만 
      { } 안에 
있는 식은 모두다 실행이 되기때문에 왠만하면 { }를 꼭 집어 넣길 바란다.)
     
2. else를 쓰지 않았을때 false가 되면 그냥 if문을 무시해버린다. (오류가 나는게 아니다.)


3. else뒤에는 조건문을 달지못한다.
 
(else뒤에 조건문을 달면 true도 아니고 false도 아닌  회색분자가 발생돌 확률이
  높기 때문에 처음부터 막아버린듯 하다.) 

4. if문은 중첩도 된다.

자 위의 1, 2, 3번은 혼자서 한번 프로그램을 짜보도록 하고 4번특성에 대해 자세히 알아보자.
(설명이 너무 길어지면 지겹다. 자기가 해보는게 좋다! 귀찮아서 그러는거 아니다..)


자 점수에 따라 학점을 내는 프로그램을 짜본다고 생각하자
if ( a  >= 90) { A } .....
대충 식을 적자면 위의 식처럼 일단 90점이상이면 "A"학점을 주는데..... 나머지 학점은 어떻게 할지 문제다.
 
그럼 90점 이상이 아닐경우 "B"학점도 있고 "C"학점도 있는데 위식을 보면 90점 이상은 "A"이지만 90점 이상이 아닐경우 모든 학점이 통일될수 밖에 없다. 이럴때 if문을 중첩해서 사용하는것이다.
아래 예제를 보자.

char a ;    

int c = '?'

 

if( c >= 60 )// if문을 선언한뒤 조건식을 c >= 60이라고 주었다.

    a = 'E'; // c 점수라고 생각하면 점수가 60 이상이면 E 주게된다.

    if( c >= 70)// 그리고 다시 if문을 선언하고난뒤c >= 70이라고 조건식을 주었다.

     a = 'C'  

//여기서 c  점수가 90점이라고 생각해보자 점수가 90점이면 위의 if문에서 E 받게 된다.

그리고 여기서  C 받게 된다그러면 a 값은 E C 두개다 가지게 되는것일까?

그렇게 생각하는 사람은 변수파트 제일 처음문장을 읽어보고 오길 바란다.

변수는 하나의값을 저장하는곳이라고 맨처음에 설명하였다

E 받고 난뒤 C 받게 되면 앞서 받은 E 사라지게 되고 C a 대입되는것이다.

     

   if( c >= 80){//그럼 80점이상일때는점수가 90점이기때문에 여기서도 B 받게된다.

      a = 'B';    // 그럼 당연히 C 밀어내고 그자리를 B 차지하게 될것이다.

      if( c >= 90)//이렇게 겹치는 범위가 있는것을 조건으로 둘때에는

                      //범위가 큰것부터 작은것순으로 조건식을 주어야 한다

       a = 'A';    //범위가 큰것이 제일 아래에 오게 되면 A 나와야되는데
                    //모두 E 나오는 경우가 생긴다궁금하면 여기 있는 조건식을 

                    //반대로 두고 90 이상이 먼저나오게 프로그래밍을 실행해보자

}

     }

    }

   } 

else{ a = 'F';} 

 

위에 설명이 너무 길어서 식이 너무 복잡해 보인다 ;;

아래 공식으로 실험해보기 바란다.

public class Ex3_1 {

 public static void main(String[] args){

 

char a;

int c = '?'

if( c >= 60 ){ // 여기를 90으로 바꾸고 아래를 80,70,60 순으로 바꾸면 될것이다.

    a = 'E'

    if( c >= 70){ 

     a = 'C';   

     if( c >= 80){

      a = 'B';

      if( c >= 90){

       a = 'A';   

      }

     }

    }

   }else{ a = 'F';}

 

댓글목록

학습자료 목록

Total 91건 2 페이지
게시물 검색

IOTsw_u2 정보

회사 . U2
주소 . 어느별 하늘 아래에 있것지요
사업자 등록번호 . 백수임 대표 . 김씨 전화 . 02-123-4567 팩스 . 팩스없음
통신판매업신고번호 . 낼할께 개인정보관리책임자 . 김씨가 알아서 함 부가통신사업신고번호 신고안함
Copyright © 2001-2013 U2. All Rights Reserved.
닫기