[Java] 기초4 (제어문)

sua_ahn·2022년 12월 22일
0

Java

목록 보기
5/15
post-thumbnail

🎢 조건문

if 문

if (조건식1) {
	처리내용1
} else if (조건식2){
	처리내용2
} else {
	처리내용3
}
  • 동작 방식

    if 조건이 참이면 중괄호{} 안 코드 실행
    else는 위 조건들이 모두 거짓일 경우 실행

int score = 70;
char grade;

if (score <= 100 && score >= 90) {
	grade = 'A';
} else if (score >= 70) {
	grade = 'B';
} else if (score >= 50) {
	grade = 'C';
} else if (score >= 0) {
	grade = 'D';
} else {
	grade = 'X';
	System.out.println("잘못된 점수입니다.");
}
System.out.printf("score: %d, grade: %s", score, grade);

switch 문

switch (변수) {
	case1:
    	처리내용1
    	break;
    default:
    	처리내용2
}
  • 동작 방식

    변수와 값이 일치하면 : 다음 코드 실행
    일치하는 값이 없으면 default 코드 실행
    break로 switch문을 빠져나오지 않으면, 아래 코드들이 모두 실행됨

  • 특징

    • 변수와 case 값이 명확해야 함
      byte, short, int, char 만 사용 가능
      → 값의 범위 설정 어려움
    • 값이 정형화되어 있는 경우, if 문보다 가독성이 좋음
    • if 문보다 처리 속도가 빠름
int score = 70;
char grade;

switch (score/10) {
	case 10:case 9:
    	grade = 'A';
        break;
    case 8:case 7:
    	grade = 'B';
        break;
    case 6:case 5:
    	grade = 'C';
        break;
    case 4:case 3:case 2:case 1:case 0:
    	grade = 'D';
        break;
    default:
    	grade = 'X';
    	System.out.println("잘못된 점수입니다.");
}
System.out.printf("score: %d, grade: %s", score, grade);

🎡 반복문

for 문

for (초기화; 조건식; 연산식) {
	처리내용
}
  • 동작 방식

    조건식이 참인 동안 {} 안의 내용과 연산식이 반복 실행됨

int array[] = {2, 3, 4, 5, 6, 7};

for (int i = 0; i < array.length; i++) {
	if (array[i] % 2 == 1) {
    	System.out.println("홀수 " + array[i] + "를 찾았습니다.");
    }
}

for each 문

for (타입 변수: 순환할 객체) {
	처리내용
}
  • 동작 방식

    순환할 객체의 크기만큼 {} 안의 내용이 반복 실행됨
    로컬 변수를 사용하여, 객체의 요소에 순차적으로 접근할 수 있음

String[] numbers = {"one", "two", "three"};

for (String num: numbers) {
    System.out.println(num);
}

while 문

while (조건식) {
	처리내용
    연산식
}
  • 동작 방식

    조건식이 참인 동안 {} 안의 내용이 반복 실행됨

int i = 0;
while (i < 5) {
	System.out.println("무한루프에 빠지지 않게 조심!");
    i++;
}

do while 문

do {
	처리내용
    연산식
} while (조건식); 
  • 동작 방식

    일단 do{} 안의 코드를 실행한 후,
    조건식이 참인 동안 {} 안의 내용이 반복 실행됨
    (while문과 달리 적어도 한 번은 실행됨)

int i = 5;
do {
	System.out.println("do");
    i++;
} while (i < 5); 

+ 분기문

 :  반복문의 흐름을 바꾸는 구문

break

 :  반복문 탈출

2중 반복문 탈출 방법

  1. loop 수와 break 수 일치
boolean b = false;
		
for (int i = 0; i < 10; i++) {
    System.out.println("i = " + i);

    for (int j = 0; j < 3; j++) {
        System.out.println(j);

        if (i == 2 && j == 1) {
            b = true;
            break;
        }
    }
    if (b) {
        break;
    }
}
  1. break label 설정
all:for (int i = 0; i < 10; i++) {
    System.out.println("i = " + i);

    for (int j = 0; j < 3; j++) {
        System.out.println(j);

        if (i == 2 && j == 1) {
            break all;		// 모든 반복문 탈출
        }
    }
}

continue

 :  skip 후 조건식으로 가서 다시 반복

Scanner sc = new Scanner(System.in);

int num;
int numArr[] = new int[5];

int w = 0;
while (w < 5) {
	// 배열 요소 입력받기
    System.out.printf("numArr[%s] = ", w);
    num = sc.nextInt();
	
    // 0이하 입력 시
    if (num <= 0) {
        System.out.println("양수를 입력하세요.");
        continue;
    }

    // num이 0이하이면 skip
    numArr[w] = num;
    w++;
}
System.out.println(Arrays.toString(numArr)); // 배열 출력
profile
해보자구

0개의 댓글