조건문
우리가 지금껏 작성해왔던 코드는 모두 위에서 아래로 흐르는 방식이었다.
제어문은 프로그램 수행 흐름을 기존과 다르게 바꾸는 역할을 한다.
그 중 조건문은 조건에 따라서 다른 문장이 수행 되도록 바꾼다.
조건문에는 if문과 switch문이 있다.
switch문은 if문으로 호환이 가능하나 if에서 switch문은 불가능한 경우가 있다.
우선 if문부터 알아보도록 하자.
if문의 기본적인 형식은 아래와 같다.
()안에 조건식이 true면 {}안에 내용을 실행하고 false면 실행하지 않게된다.
if문 안에 if문을 중첩해서 사용하는 것도 가능하며
else를 사용하여 false일 경우 수행할 문장도 지정해 줄 수 있다.
이 때, else는 그 외의 경우를 전부 포함하기 때문에 따로 조건식이 붙지 않는다.
else if를 사용하여 조건식을 2개 이상 넣을 수 있지만
이 경우 조건문이 true로 일 때 그 뒤에 조건은 실행하지 않는다.
여기서 Scanner라는 클래스를 사용했는데 사용자로부터 입력되는 값을 받아와주는 클래스이다.
Scanner a = new Scanner(System.in); 으로 생성해 준 뒤
단축키 Ctrl + Shift + o 로 스캐너를 import 하면 된다.
이 후 정수는 nextInt();, 실수는 nextFloat();, nextDouble();, 문자열은 next();, nextLine();으로 값을 받아올 수 있으며
여기서 next(); 는 띄어쓰기를 구분인자로 생각하기 때문에 각각 저장하고
nextLine();은 문자열에 띄어쓰기나 줄 구분까지 저장한다.
다음으로 switch문은 조건식 하나로 여러 경우를 처리해야 할 때 사용하며 조건식의 결과는
정수, 문자 혹은 문자열이여야 한다.
사용 시 위와 같이 조건식의 결과 값이랑 같은 case문으로 이동하고 해당 case문을 수행하게 된다.
결과 값에 해당하는 case문이 없는 모든 경우 즉, 실행할게 없는 경우 default문의 문장을 수행한다.
그런데 만약 case문 마다 break문을 사용하여 빠져나갈 곳을 만들어 놓지 않는다면
빠져나갈 곳이 없기때문에 무조건 default문을 수행하게 되니 설계 의도가 아니라면 반드시 break문을 사용하도록 하자
break문의 관한 내용은 포스팅 가장 마지막 챕터에서 다룬다.
반복문
조건문이 한가지의 문장을 한 번 수행한다고 하면 반복문은 말그대로 특정 문장을 반복해서 수행이 가능하다.
종류로는 for문과 while문이 있고 for문은 반복할 횟수가 정해져있을때, while 문은 반복할 횟수가
정해져 있지 않을때 주로 사용한다. 그러나 조건문과 다르게 호환이 완벽하게 가능은 하다.
우선 for문은 for(초기식; 조건식; 증감식) {수행될 문장;} 의 구조를 가진다.
처음엔 초기식을 확인하고 조건식을 확인한 뒤 조건식이 true면 문장을 수행하고 false면 수행하지 않는다.
그 뒤론 다시 증감식을 연산하고 조건식을 확인 한뒤 true면 문장을 수행하고 false면 수행하지 않는다.
이런식으로 조건식에 false인 결과가 나올때까지 반복해서 실행하게 된다.
마찬가지로 중첩해서 사용이 가능하고 중첩하는 경우 아래와 같은 구조를 가진다.
이 경우 짜여진 코드를 보면 그렇게 어려워 보이지 않지만 실제로 해보면 헷갈리는 경우가 잦으므로
노트같은 곳에 어떤 순서로 운용이 되는지 직접 손으로 작성해서 완벽히 익숙하게 익히는 것이 좋은 방법이다.
while문은 while문과 do ~ while문 2가지 종류의 반복문이 있다.
while문은 조건식이 true일 때 문장을 수행하고 문장 수행이 끝나면 조건식을 확인해서 true면 다시 수행한다.
조건식이 false가 될 때까지 수행하여 false가 되면 반복문이 종료된다.
따라서 조건을 벗어나게 할 증감식이나 분기문이 없다면 무한히 반복하게 된다.
분기문은 이 포스팅의 다음 챕터에서 다룬다.
do ~ while문은 while문과 다르게 무조건 한 번 이상 수행을 한다.
while문의 경우는 조건식이 처음부터 false면 아무것도 수행을 하지않지만
do ~ while문은 조건식에 상관없이 일단 수행을 한번은 하고나서 조건식을 확인하기 때문이다.
그 외에는 while문과 동일하다.
분기문
분기문에는 break문과 coutinue문이 있으며
break문은 반복문에서 자신이 포함된 가장 가까운 반복문을 빠져나간다.
continue문은 break문과 다르게 반복문 내에서만 쓰이는 구문으로 continue문 사용시 그 아랫 부분은 실행하지 않고
다시 반복문을 실행한다. 따라서 for문의 경우 증감식으로 이동하고 while문의 경우 조건식으로 이동한다.
전체 반복 중에서 특정 조건을 만족하는 경우를 제외하고 싶을때 if문과 같이 활용하여 유용하게 쓸 수 있다.
'프로그래밍 > Java' 카테고리의 다른 글
[Java] 6. 객체 (0) | 2023.02.21 |
---|---|
[Java] 5. 배열 (0) | 2023.02.21 |
[Java] 3. 연산자 (0) | 2023.02.19 |
[Java] 2. 변수 (0) | 2023.02.19 |
[Java] 1. 자바의 설치 (0) | 2023.02.19 |