반응형
Exam0140 - 흐름 제어문 : if ~ else 문
package com.eomcs.lang.ex06;
//# 흐름 제어문 - if ~ else 문
//
public class Exam0140 {
public static void main(String[] args) {
int age = 17;
// if 문은 else 문 없이 단독으로 사용할 수 있다.
if (age < 19)
System.out.println("미성년입니다.1");
if (age >= 19)
System.out.println("성년입니다.1");
// else문을 사용하는 아주 모범적인 예!
if (age >= 19) // 조건이 거짓이면 다음 else 문을 실행한다.
System.out.println("성인입니다.2");
else
System.out.println("미성년입니다.2");
// 여러 문장을 실행할 때 블록으로 묶어야 한다.
if (age >= 20) {
System.out.println("--------------");
System.out.println("성인입니다.3");
}
else {
System.out.println("--------------");
System.out.println("미성년입니다.3");
}
// 한 문장일 때는 블록으로 묶지 않아도 된다.
if (age >= 19) { // OK!
System.out.println("성인입니다.4");
System.out.println("--------------------------");
}
else
System.out.println("미성년입니다.4");
// 한 문장일 때는 블록으로 묶지 않아도 된다.
if (age >= 19)
System.out.println("성인입니다.5");
else {
System.out.println("미성년입니다.5");
System.out.println("--------------------------");
}
}
}
Exam0210 - 흐름 제어문 : switch 사용 전
package com.eomcs.lang.ex06;
import java.util.Scanner;
//# 흐름 제어문 - switch 사용 전
//
public class Exam0210 {
public static void main(String[] args) {
// 키보드 입력을 다루는 도구 생성
Scanner keyScan = new Scanner(System.in);
System.out.println("[지원부서]");
System.out.println("1. S/W개발");
System.out.println("2. 일반관리");
System.out.println("3. 시설경비");
System.out.print("지원 분야의 번호를 입력하세요? ");
// 사용자가 콘솔 창에 입력할 수 있도록
// 커서를 대기시키고 싶다면 nextInt()를 실행하라!
// => nextInt()는 사용자가 숫자를 입력하고 엔터를 칠 때까지 기다린다.
int no = keyScan.nextInt();
System.out.println("제출하실 서류는 다음과 같습니다.");
if (no == 1) {
System.out.println("정보처리자격증");
System.out.println("졸업증명서");
System.out.println("이력서");
} else if (no == 2) {
System.out.println("졸업증명서");
System.out.println("이력서");
} else if (no == 3) {
System.out.println("이력서");
} else {
System.out.println("올바른 번호를 입력하세요!");
}
keyScan.close();
}
}
Exam0221 - 흐름 제어문 : switch 사용 후
package com.eomcs.lang.ex06;
import java.util.Scanner;
//# 흐름 제어문 - switch 사용 후
//
public class Exam0221 {
public static void main(String[] args) {
Scanner keyScan = new Scanner(System.in);
System.out.println("[지원부서]");
System.out.println("1. S/W개발");
System.out.println("2. 일반관리");
System.out.println("3. 시설경비");
System.out.print("지원 분야의 번호를 입력하세요? ");
int no = keyScan.nextInt();
System.out.println("제출하실 서류는 다음과 같습니다.");
switch (no) {
case 1:
System.out.println("정보처리자격증");
System.out.println("졸업증명서");
System.out.println("이력서");
break; // 여기까지만 실행한다.
case 2:
System.out.println("졸업증명서");
System.out.println("이력서");
break; // 여기까지만 실행한다.
case 3:
System.out.println("이력서");
break; // 여기까지만 실행한다.
default:
System.out.println("올바른 번호를 입력하세요!");
}
keyScan.close();
}
}
Exam0223 - 흐름 제어문 : switch와 break
package com.eomcs.lang.ex06;
//# 흐름 제어문 - switch와 break
//
public class Exam0223 {
public static void main(String[] args) {
int score = 50;
// break 문을 쓰지 않으면 계속 이어서 실행된다.
// => 일부러 쓰지 않을 때가 있다.
switch (score) {
case 100:
case 90:
System.out.println("A");
break;
case 80:
case 70:
System.out.println("B");
break;
case 60:
case 50:
case 40:
System.out.println("C");
break;
default:
System.out.println("F");
}
}
}
Exam0223 - 흐름 제어문 : switch 문법2
package com.eomcs.lang.ex06;
//# 흐름 제어문 - switch 문법 II
//
public class Exam0242 {
// 상수를 좀 더 조직적으로 관리하는 방법
// => enum을 사용하여 상수를 정의한다.
// => nested enum은 기본이 static 이다.
// 그래서 static을 생략해도 된다.
//
enum Level {
GUEST, MEMBER, ADMIN
}
public static void main(String[] args) {
// enum으로 정의된 상수를 사용하려면
// enum 타입의 변수를 선언해야 한다.
// => final int처럼 직접 값을 지정하지 않아도 된다.
// => 값을 직접 지정할 수도 있다. (나중에 따로 enum 문법에서 설명)
//
// enum을 사용하는 주된 이유는?
// => 100, 200, "admin" 과 같이 값을 직접 지정할 필요가 없다.
// => enum 변수에는 그 타입에 정의된 값만 저장할 수 있다.
// => 안전한 코드를 작성할 수 있다.
//
Level level = Level.MEMBER;
// 다음과 같이 switch나 case 값으로 enum 타입의 값이 올 수 있다.
switch (level) {
case GUEST:
System.out.println("조회만 가능합니다.");
break;
case MEMBER:
System.out.println("글작성 가능합니다.");
break;
case ADMIN:
System.out.println("다른 회원의 글을 변경, 삭제할 수 있습니다.");
break;
}
}
}
Exam0322 - 흐름 제어문 : break와 continue 활용
package com.eomcs.lang.ex06;
//# 흐름 제어문 - break와 continue 활용
//
public class Exam0322 {
public static void main(String[] args) {
int count = 0;
int sum = 0;
// 1부터 100까지의 카운트를 하는데 단 합은 50까지만 계산한다.
// => break 사용 전
count = 0;
sum = 0;
while (count < 100) {
count++;
if (count > 50) // 50을 넘어가면 합을 수행하지 않지만 100까지 계속 반복한다.
continue;
sum += count;
}
System.out.printf("count=%d, sum=%d\n", count, sum);
System.out.println("------------------------");
// => break 사용 후
count = 0;
sum = 0;
while (count < 100) {
count++;
if (count > 50)
break; // 즉시 반복문을 종료하고 나간다.
sum += count;
}
System.out.printf("count=%d, sum=%d\n", count, sum);
}
}
Exam0331 - 흐름 제어문 : 중첩된 반복문 탈출
package com.eomcs.lang.ex06;
//# 흐름 제어문 - 중첩된 반복문 탈출
//
public class Exam0331 {
public static void main(String[] args) {
int x = 2, y = 1;
// 라벨명: 반복문1 { 반복문2 {break 라벨명;}}
// 라벨 문법:
// 라벨: 문장;
// 라벨: {문장1, 문장2, ...}
myloop:
while (x <= 9) {
while (y <= 9) {
System.out.printf("%d * %d = %d\n", x, y, x * y);
if (x == 5 && y == 5)
break myloop; // myloop 라벨에 소속된 문장을 나간다.
y++;
}
System.out.println();
x++;
y = 1;
}
System.out.println("종료!!");
System.out.println("-----------------------------");
}
}
Exam0331 - 흐름 제어문 : for 중첩과 break
package com.eomcs.lang.ex06;
// # 흐름 제어문 - for 중첩과 break
//
public class Exam0432 {
public static void main(String[] args) {
// break 라벨명;
loop1: {
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + " ");
if (j == 5)
break loop1; // 라벨로 지정한 문장을 나간다.
}
System.out.println();
}
System.out.println("-------------------------");
}
System.out.println("loop1 밖!");
}
}
Exam0450 - 흐름 제어문 : for(:) 와 배열
package com.eomcs.lang.ex06;
// # 흐름 제어문 - for(:) 와 배열
//
public class Exam0450 {
public static void main(String[] args) {
String[] names = {"홍길동", "임꺽정", "유관순", "윤봉길", "안중근"};
// 배열의 처음부터 끝까지 값을 꺼내는 것이라면
// 다음의 for 문법을 사용하라! 아주 편하다!
// for (배열에서 꺼낸 값을 저장할 변수 선언 : 배열주소) 문장;
for (String name : names)
System.out.println(name);
}
}
//
// # for (:)
// - 배열 전체를 반복하거나 컬렉션 객체(java.util.Iterable 구현체) 전체를 반복할 때 유용한다.
// - 배열의 일부만 반복할 수 없다.
// - 배열의 값을 다룰 때 인덱스를 사용할 필요가 없어 편리하다.
//
// 문법:
// for (변수 선언 : 배열, Iterable 구현체) 문장1;
// for (변수 선언 : 배열, Iterable 구현체) { 문장1; 문장2; ...}
// - 변수의 타입은 배열이나 Iterable 구현체의 항목 타입과 같아야 한다.
// - 반복문을 돌 때 마다 항목을 값을 꺼내 변수에 담는다.
반응형