Java 기초 문법 정리(4강)
25 Nov 20194장 제어문
if문, if-else 문
-
조건식의 결과에 따라 수행문이 실행되는 조건문
if (조건식) { 수행문; } if (조건식) { 수행문 1; } else { 수행문 2; }
if-else if-else 문
-
하나의 조건에 대한 여러 경우에 대해 수행문이 각각 다른 경우
if (조건식) { 수행문 1; } else if (조건식) { 수행문 2; } else { 수행문 3; }
조건문과 조건 연산자
-
if-else 문은 조건 연산자로 구현할 수 있음
if (a > b) max = a; else max = b; max = (a > b) ? a : b;
switch-case문
-
조건이 정수, 문자열 값으로 그 값에 따라 수행 결과가 달라지는 경우 if-else if-else와 같은 의미로 수행
-
break가 없으면 case에 해당되지 않아도 수행될 수 있으므로 주의해야 함
if (rank == 1) { medalColor = 'G'; } else if (rank == 2) { medalColor = 'S'; } else if (rank == 3) { medalColor = 'B'; } else { medalColor = 'A'; } switch(rank) { case 1:medalColor = 'G': break; case 2:medalColor = 'S': break; case 3:medalColor = 'B': break; default:medalColor = 'A': }
-
조건에 문자열 사용하기(자바 7부터 가능)
switch (medal) { case "Gold": System.out.println("금메달"); case "Silver": System.out.println("은메달"); case "Bronze": System.out.println("동메달"); default: System.out.println("메달이 없습니다."); }
연습문제
-
각 월에 따른 한 달 날짜 수를 day 변수 값으로 출력(2월은 28일로)
import java.util.Scanner; public class SWitchExample { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int month = Scanner.nextInt(); int day; switch(month) { case 1: case 3: cae 5: case 7: case 8: case 10: case 12: day = 31; break; case 2: day = 28; break; case 4: case 6: case 9: case 11: day = 31; break; default: System.out.println("Error"); day = 0; } System.out.println(month + "날은 " + day +"일입니다.") } }
for문
-
반복문 중 가장 많이 사용됨
-
일정 횟수에 기반한 반복을 구현할 때 효율적
for (초기화식; 조건식; 증감식) { 수행문; }
각 반복문의 쓰임
- while
- 수행: 조건이 참인 동안 반복 수행, 조건이 맞지 않으면 수행되는 부분이 없음
- 쓰임: 조건식의 결과나 변수가 true, false 값인 경우 주로 사용
- do-while
- 수행: 조건이 참인 동안 반복 수행, 수행문을 먼저 수행하고 조건 체크
- 쓰임: 조건식의 결과나 변수가 true, false 값인 경우 주로 사용
- for
- 수행: 초기화, 조건체크, 증감 순으로 수행
- 쓰임: 특정 수의 범위, 횟수와 관련하여 반복되는 경우 주료 사용. 배열과 함께 많이 사용
중첩 반복문
- 반복문이 중첩되어 구현되어 있는 경우
- 반복문 내부에 또 다른 반복문이 있음
- 외부 반복문과 내부 반복문 간의 변수 값 변화에 유의
- 반복문은 수행 속도에 영향을 많이 미치며 중첩되어 있을수록 속도가 느려짐
break문
- 감싸고 있는 블록의 제어를 빠져나오는 기능
- 반복문, 조건문, switch-case 등과 같이 쓰이며 현재 수행하고 있던 블록에서 수행을 중지하고 외부로 제어가 이동
- 반복문과 같이 사용하면 특정 조건일 때 반복을 중지하는 기능을 구현할 수 있음
public class BreakExample { public static void main(String[] args) { int num; int sum = 0; for (int num=1;; num++) { sum += num; if (sum >= 100) break; } System.out.println(num); System.out.println(sum); } }
continue 문
-
반복의 수행 중 조건문과 조건이 맞는 경우 이후 블록 내부의 다른 수행문을 수행하지 않음
public class ContinueExample { public static void main(String[] args) { int num; for (num=1 ; num<=100; num++) { if (num%3 != 0) continue; System.out.println(num); } } }
반복문
- 동일한 수행문을 조건에 맞는 동안 수행하도록 하는 기능
- 달리는 자동차 / 일정 횟수만큼 돌아가는 나사 / 특정 온도까지 가동되는 에어컨
while 문
-
조건이 참인 동안 반복해서 수행문 수행
while (조건식) { 수행문 1; ... }
do-while 문
-
먼저 수행문을 수행하고 조건 체크
-
한 번 이상 수행문이 수행되어야 하는 경우 사용
do { 수행문 1; } while (조건식) { 수행문 2; }
while문과 do-while문 비교
-
입력 받는 정수를 모두 더해주고 입력된 정수가 0이면 반복문 빠져 나오기
// do-while import java.util.Scanner; public class Example { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int input; do { input = scanner.nextInt(); sum += input; } while (input != 0); System.out.println(sum); } }
// while import java.util.Scanner; public class Example2 { public static void main(String[] args) { int input; int sum = 0; Scanner scanner = new Scanner(System.in); input = scanner.nextInt(); while(input != 0) { sum += input; input = scanner.nextInt(); } System.out.println(sum); } }