ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바기초] 오류의 종류와 제어문(선택문) 정리노트
    º Language º/Java 2023. 3. 13. 21:11

     * 자바 오류의 종류

     

    1. 문법오류

     

    - 자바문법에 맞지 않는 오류를 말하며 컴파일시에 오류메세지를 출력 해 줍니다.

    - 오류메세지를 파악하여 오류를 제거한 후 저장하고 다시 컴파일 하여 문제를 해결합니다.

     

    2. 논리오류

     

    - 컴파일도 되고 실행도 잘 되지만 기대하는 대로 바람직하게 동작하지 않는 것을 말합니다.

    - 프로그램 속에 "버그"가 들어있다고 하고 "버그"를 잡아가는 과정을 "디버깅"이라고 합니다.

    - 디버깅 할 때에는 의심 부분을 실행하지 않도록 주석으로 처리 한다든지 진행되는 변수의 값을 출력을 해 본다든지 하여 문제를 해결할 수 있어요. (편집도구 디버깅 툴을 이용할 수 있어요)

     

    3. 실행오류

     

    - 컴파일도 되고 실행도 잘 되지만 때로는 실행할 때 발생하는 오류를 말합니다.

    - 실행시에 사용자의 부주의로 발생하는 오류를 발합니다. 예를 들어 숫자(정수)를 입력해야 하는데

    문자를 입력하는 경우입니다.

    - 예외처리를 통하여 문제를 해결할 수 있습니다.

     

     

    * 제어문 (선택문, 반복문)

     

    - 프로그램의 흐름을 제어하기 위한 문장을 말합니다.
     
     
    1.선택문 (if, switch)

    - 어떤 상황에 따라 동작시켜야 할 명령어가 다를때에 사용하는 문장입니다.

     

    1) if문을 사용하는 기본 형식

     

    a;
    b;
    if( 조건식 )
       c;
    d;
    e;

    > if문 결과값이 참이면 c, d, e 값이 출력 / 거짓인 경우 d, e값이 출력됩니다.

     

    a;
    b;
    c;
    if ( 조건식 )
       d;
    else
       e;
    f;
    g;

    > if문 결과값이 참이면 d, f, g 값이 출력 / 거짓인 경우 e, f, g 출력됩니다.

     

    a;
    b;
    if( 조건식 ) {
       c;
       d;
    }
    else {
       e;
       f;
    }
    g;
    h;
    > if, else 모두 2개 이상의 명령어가 있는 경우에는 중괄호를 넣어주어야 정확한 결과값을 가집니다. 명령어가 1개의 경우 중괄호를 선택적으로 넣을 수 있습니다.

     

     

    2)  중첩 if문

     

    a;
    b;
    if( 조건식1 ) {
       if( 조건식2 ) {
       	c;
       else
       	d;
        }
    else {
       if( 조건식3 )
       	e;
       else
       	f;
        }
    }
    g;
    h;

    > '조건식 1'의 값이 참인 경우 아래의 if문 '조건식 2'에서 또 한번 참 거짓을 나누어 값을 정합니다. 
    '조건식 1'의 값이 거짓인 경우 else (조건식3) 에서 참, 거짓의 결과에 따라 결과 값을 정하게 됩니다.

     

     

    * 3개 이상의 문장 중 하나를 선택하는 조건문

     

    if( 조건식1 )
    
    a;
    
    else if( 조건식2 )
    
    b;
    
    else if( 조건식3)
    
    c;
    
    else if( 조건식4 )
    
    d;
    
    ...

    > 여러 가지의 조건을 통해 결과 값을 도출하고자 할 때에는 else if 조건식을 활용합니다. 개수의 제한 없이 사용이 가능합니다.

     

    연습1)

    사용자한테 0~9사이의 정수를 입력받아 한글표기식 출력하는 프로그램을 작성해보세요.

    실행 예 : 0~9사이의 정수를 입력하세요==> 4 ->

     

    연습2) 어떤사람의 태어난 월을 입력받아 계절명을 출력하는 프로그램을 작성해 봅니다.

    실행 예 : 몇월에 태어났나요? -> 3 -> 3월은 봄입니다.

    처리조건 : 3,4,5 봄 / 6,7,8 여름 / 9,10,11 가을 / 12,1,2 겨울

     

     

    * switch ~ case 문

     

    -  '항'에는 변수나 변수를 활용한 수식이 올 수 있고, 항의 자료형은 정수이거나 문자열이 될 수 있어요.

    -  항의 값에 따라 해당하는 case로 바로 이동하여 문장을 수행시키며 해당 case가 없으면 default의 문장을 실행합니다.

    - 각 case문에는 필요하다면 break가 올 수 있어요! break를 만나면 switch문을 탈출하라는 의미입니다.

    - 항의 값에 따라서해당 case로 바로 이동한다음 거기서 부터 break를 만나기 전까지 모든 문장을 실행합니다.

    - 만약 break가 없다면 해당 case부터 swtich 문 안의 문장 전체를 실행합니다.

    - 내가 해결해야 하는 문제에 따라 적절한 위치에 break를 둘 수 있어요.

    switch(항){
    
    case 값1:
    
    문장1;
    
    [break;]
    
    case 값2:
    
    문장2;
    
    [break;]
    
    case 값3:
    
    문장3;
    
    [break;]
    
    ..
    
    default:
    
    문장n;
    
    [break;]
    
    }

    > 위와 같이 판별해야 하는 조건식이 3개 이상일때에 if문 보다는 switch~case문을 이용하여 훨씬 간결하게 문장을 표현할 수 있습니다.

     

     

     

    * switch와 if문의 혼합 형식

     

    a;
    b;
    switch(항1){
      case 값1:
        ~~
      case 값2:
         ~~
    }
    
    switch(항2){
      case 값1:
        ~~
      case 값2:
    }
    if(조건식){
    	switch(){
        
    	}
    }
    else{
    	switch(){
        
    	}
    }
    switch( 항 ){
    	case 값1:
    	   if(조건1)
    	     ~~~
    	   else
    	     ~~~
    	   break;
    	case 값2:
    	   if(조건2)
    	     ~~~
    	   else
    	     ~~~
    	   break;
    
    }
    
    // 아래의 코드처럼 한줄로 작성도 가능
    switch( 항 ){
    	case 값1:  if(조건1)    ~~~  else    ~~~   break;
    	case 값2:  if(조건2)    ~~~  else    ~~~   break;
    
    }

    > 문제 해결에 따라서 if나 switch문이 혼합될 수 있고, 여러 개 올 수도 있습니다.

     

     

    연습)

    - 사용자 한테 이름, 생월, 생일을 입력받아 별자리를 판별하여 출력하는 프로그램을 작성해 봅니다.

    - 실행 예 :

    이름을 입력하세요==> 손지민

    생월을 입력하세요==> 6

    생일을 입력하세요==> 22

    손지민님의 별자리는 게자리입니다.

    - 처리조건: 네이버 별자리를 검색하여 참조

     

     

Coder yein