본문 바로가기
Java/이것이 자바다

조건문과 반복문

by k-mozzi 2022. 10. 2.
반응형
Preface

 

 

이번 장에선 Java의 조건문과 반복문을 공부했다.

 

if문, for문, while문 등 간단한 제어문은 파이썬을 다룰 때 충분히 언급했다고 생각하여 상세한 설명은 작성하지 않았다.

 

제어문 자체를 여러 번 공부해서 그런지 크게 어려운 부분은 없었다.

 

한 가지 따로 공부하고 싶은 내용은 Scanner에 관한 내용인데, 책에는 간단한 소개 정도만 언급되어 있어 Scanner 클래스를 자세히 설명하는 블로그의 링크를 달아두었다.


 

1. 조건문

 

 

- else-if문 코드

package ch4;

public class elseIfExample {

	public static void main(String[] args) {

		int score = 93;

		if (score >= 90) {
			System.out.println("점수가 90보다 큽니다.");
			System.out.println("등급은 A 입니다.");
		} else if (score >= 80) {
			System.out.println("점수가 80보다 큽니다.");
			System.out.println("등급은 B 입니다.");
		} else if (score >= 80) {
			System.out.println("점수가 70보다 큽니다.");
			System.out.println("등급은 c 입니다.");
		} else {
			System.out.println("점수가 70 미만입니다.");
			System.out.println("등급은 D 입니다.");
		}

	}

}

 

 

- switch문: 조건 제어문으로, 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다.

1) 괄호 안의 값과 동일한 값을 갖는 case로 가서 실행문을 실행시킨다.

2) 괄호 안의 값과 동일한 값을 갖는 case가 없으면default로 가서 실행문을 실행시킨다.

→ default 값은 생략할 수 있다.

3) 괄호에는 정수 타입 변수나 정수값을 산출하는 연산식, String 타입의 변수 등이 올 수 있다.

 

 

- switch문을 사용한 주사위 코드

package ch4;

public class switchDiceExample {

	public static void main(String[] args) {

		int num = (int) (Math.random() * 6) + 1;

		switch (num) {
		case 1:
			System.out.println("1번");
			break;
		case 2:
			System.out.println("2번");
			break;
		case 3:
			System.out.println("3번");
			break;
		case 4:
			System.out.println("4번");
			break;
		case 5:
			System.out.println("5번");
			break;
		default:
			System.out.println("6번");
			break;
		}

	}

}

 


 

2. 반복문

 

 

- for문을 작성할 때 변수를 미리 선언하여 초기화식이 필요 없을 경우에는 초기화식을 생략할 수 있다.

1) 생략해도 초기화식이 들어가는 자리에 세미콜론은 작성해야 하는 듯?

2) 초기화식이나 증감식이 둘 이상일 경우에는 쉼표로 구분해서 작성하면 된다.

int i = 1;
for (; i <= 100; i++) { ~ }

// 둘 이상의 초기화식과 증감식
for (int i = 0. j = 100; i <= 50 && j >= 50; i++, j--) { ~ }

 

 

- for문을 작성할 때 초기화식에서 루프 카운트 변수에 부동소수점 타입을 사용하면 안 된다.

 

 

- System.in.read( ): 메소드는 키보드로부터 입력된 키 코드를 리턴한다.

→ 하나의 키 코드만 읽으므로 콘솔에 입력된 문자열을 한 번에 읽을 수 없다.

 

 

- 키보드로 while문을 제어하는 코드

package ch4;

public class whileKeyControl {

	public static void main(String[] args) throws Exception {

		boolean run = true;
		int speed = 0;
		int keyCode = 0;

		while (run) {
			if (keyCode != 13 && keyCode != 10) {
				System.out.println("----------");
				System.out.println("1: 증속 | 2: 감속 | 3: 중지");
				System.out.println("----------");
				System.out.print("선택: ");
			}

			keyCode = System.in.read();

			if (keyCode == 49) { // 1을 읽었을 경우
				speed++;
				System.out.println("현재 속도: " + speed);
			} else if (keyCode == 50) { // 2를 읽었을 경우
				speed--;
				System.out.println("현재 속도: " + speed);
			} else if (keyCode == 51) { // 3을 읽었을 경우
				run = false;
			}
		}

		System.out.println("프로그램 종료.");

	}

}

 

 

 

- 출력 메소드

1) System.out.println( ): 매개값을 출력하고 다음 행으로 이동한다.

2) System.out.print( ): 매개값을 출력만 하고 다음 행으로 이동하지 않는다.

 

 

- do-while문: 블록 내부의 실행문을 우선 실행시키고 실행 결과에 따라 반복 실행을 계속할지 결정할 때 사용

while문 뒤에 반드시 세미콜론을 붙여야 한다.

package ch4;

import java.util.Scanner;

public class doWhileExample {

	public static void main(String[] args) {

		System.out.println("메시지를 입력하세요.");
		System.out.println("프로그램을 종료하려면 q를 입력하세요.");

		Scanner scanner = new Scanner(System.in); // Scanner 객체 생성
		String inputString;

		do {
			System.out.print("> ");
			inputString = scanner.nextLine(); // 키보드라 입력한 문자열을 얻음
			System.out.println(inputString);
		} while (!inputString.equals("q"));

		System.out.println();
		System.out.println("프로그램 종료.");

	}

}

 

 

- Scanner 객체를 생성하고 nextLine( ) 메소드를 호출하면 콘솔에 입력된 문자열을 한 번에 읽을 수 있다.

→ Scanner을 사용하려면 import문이 필요하다.

Scanner scanner = new Scanner(System.in);
String inputString = scanner.nextLine();

Scanner 클래스를 정리한 블로그

 

 

- break문: 반복문을 실행 중지할 때 사용된다.

1) 반복문이 중첩되어 있을 경우 break문은 가장 가까운 반복문만 종료한다.

→ 중첩된 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름(라벨)을 붙인 후 "break 이름;"을 사용하면 된다.

package ch4;

public class breakOutterExample {

	public static void main(String[] args) {

		Outter: for (char upper = 'A'; upper <= 'Z'; upper++) {
			for (char lower = 'a'; lower <= 'z'; lower++) {
				System.out.println(upper + "-" + lower);
				if (lower == 'g') {
					break Outter;
				}
			}
		}
		System.out.println("프로그램 종료.");
	}

}

 

 

- continue문: 반복문에서 사용되며, 블록 내부에서 continue문이 실행되면 for문의 증감식 또는 while문, do-while문의 조건식으로 이동한다.

 

728x90
반응형

'Java > 이것이 자바다' 카테고리의 다른 글

타입 변환 메소드  (2) 2022.10.07
참조 타입  (0) 2022.10.07
연산자  (0) 2022.09.30
자바 시작하기, 변수와 타입  (0) 2022.09.28
이것이 자바다 출처  (0) 2022.09.26

댓글