티스토리 뷰

4.1 코드 실행 흐름 제어

  • main()메서드의 시작{에서 끝}까지 위에서부터 아래로 실행
  • 제어문: 개바자가 원하는 방향으로 바꿀 수 있도록 해주는 것
  • 제어문 안에서 또 다른 제어문을 사용할 수도 있음
조건문 반복문
if문 for문
switch문 while문, do-while문

 

4.2 if문

  • 조건식의 결과에 따라 블록 실행 여부 결정
  • 조건식은 true/false 산출할 수 있어야 한다.
  • true면 실행, false면 실행하지 않음
  • {} 실행문이 하나면, 중괄호 생략 가능하지만 한 줄만 인식하기 때문에 조심해야 한다.
int score = 93;

if (score >= 90) {
    System.out.println("90보다 큽니다");
    System.out.println("A");
}

if (score < 90)
    System.out.println("90보다 작습다"); // {}가 없을 경우 조건문은 1행만 인식하기 때문에 실행 안 함 
    System.out.println("B"); // 인식되지 않아 실행 됨
  • 여러 개의 조건식 중 true가 되는 블록만 실행하고 전체 if문을 벗어난다.
int score = 75;

if (score >= 90) {
	System.out.print("90보다 큼");
} else if (score >= 80) {
	System.out.print("80보다 큼");
} else if (score >= 70) {
	System.out.print("70보다 큼");
} else {
	System.out.print("70보다 작");
}

 

  • 중첩 if문: 분석하기 어려워진다는 단점이 있음 
int score = 85;

if (score >= 90) {
    System.out.print("90보다 큼");
    if (score >= 95) {
        System.out.println("A+");
    }
} else if (score >= 80) {
    System.out.print("80보다 큼");
    if (score >= 85) {
        System.out.println("B+");
    }
} else if (score >= 70) {
    System.out.print("70보다 큼");
    if (score >= 75) {
    System.out.println("C+");
    }
} else {
    System.out.print("70보다 작음");
    if (score >= 65) {
        System.out.println("D+");
    }
}

 

4.3 switch 문

  • if문은 경우의 수가 많아질 수록 코드가 복잡해짐
  • switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 if문보다 코드가 간결해짐
  • default 생략 가능
		int number = (int) (Math.random() * 10) + 1;
		
		switch (number) {
		case 1: {
			System.out.print("1");
			break;
		}
		case 2: {
			System.out.print("2");
			break;
		}
		case 3: {
			System.out.print("3");
			break;
		}
		case 4: {
			System.out.print("4");
			break;
		}
		default:
			System.out.print("5~10");
			break;
		}

 

  • break는 다음 case를 실행하지 않고 switch문을 빠져 나가게 해주고 없으면 다음 case도 연달아 실행된다.
	char grade = 'b';
		
		switch (grade) {
		case 'a':
		case 'b':
			System.out.println("우수 회원");
			break;
		case 'c':
			System.out.println("일 회원");
			break;
		default:
			System.out.println("손");
		}
	}
    
    /*
    우수 회원
	일 회원
	손님
	모든 case가 출력됨
    */

 

4.4 for문

    • 똑같은 실행문을 반복적으로 실행해야 할 때 사용
    • 조건식을 평가해서 true면 실행하고 false면 for문을 종료하고 빠져 나간다.
    • 부동소수점 방식의 float는 사용하지 않는 것이 좋다.(부동소수점 방식이라 오차가 조금 발생하기 때문)
        int sum = 0;

        // 1부터 시작해서 10번 반복하도록 설정
        for (int i = 1; i <= 10; i++) {
            sum += i;
        }

        System.out.println(sum);

 

4.5 while문

  • 처음 실행될 때 먼저 조건식을 평가해서 조건식이 true일 때 반복하고 false면 while문을 빠져 나간다.
	int i = 1;
	
    // i를 1씩 증가시켜, 10 이하면 반복하고 11이 되면 빠져 나가도록 한다.
	while (i <= 10) {
		System.out.println(i);
		i++;
	}

 

4.6 do-while문

  • while문은 조건식을 먼저 평가하지만 do-while문은 실행문을 먼저 실행한 후에, 조건식을 평가한다.
  • While() 뒤에 ;을 꼭 써야 한다.
		Scanner inScanner = new Scanner(System.in);
		String inputString;
		
        // 먼저 문자를 입력 받는다.
		do {
			inputString = inScanner.nextLine();
			System.out.println(inputString);	
            
		// 그 후에 q인지 아닌지를 판단하여 계속할지 빠져나갈지를 결정
		} while(!inputString.equals("q"));

 

4.7 break문

  • 반복문을 실행 중지하거나 조건문을 종료할 때 사용
  • 반복문이 중첩되어 있을 때는 가장 가까운 반복문만 종료
  • 반복문에 Label붙이고 break label 이름; 을 사용하면 Label이 붙은 반복문이 종료된다.
        while (true) {
            int number = (int)(Math.random() * 6) + 1;
            System.out.println(number);

            // 랜덤 숫자가 6이 나오면 while문을 종료하고 아래의 종료 프린트문을 출력
            if (number == 6) {
                break;
            }
        }

        System.out.println("종료");

 

4.8 continue문

  • 반복문에서만 사용
  • continue아래 부분은 실행되지 않고 바로 증감식 또는 조건식으로 돌아간다.
		for(int i = 1; i <= 10; i++) {
			// 짝수일 때는 아래의 프린트문은 실행되지 않고 다시 증감식으로 돌아간다.
        	if(i % 2 == 0) {
				continue;
			}
			
            // 홀수만 출력ㄱ
			System.out.println(i);
		}
최근에 올라온 글