-
[자바기초] 오류의 종류와 제어문(선택문) 정리노트º 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
손지민님의 별자리는 게자리입니다.
- 처리조건: 네이버 별자리를 검색하여 참조
'º Language º > Java' 카테고리의 다른 글
[자바기초] 배열 정리노트 (0) 2023.03.17 [자바기초] 제어문(반복문) 정리노트 (0) 2023.03.15 [자바기초] 연산자의 종류와 활용 방법 정리노트 (2) 2023.03.11 [자바기초] 8가지 자료형의 구성요소 정리노트 (0) 2023.03.10 [자바기초] 배열 | 객체 배열 사용하기 (0) 2023.03.07