Chapter 04. 제어문(3)

수강 날짜 21-07-31

강의명 : 07 for문, 중첩 반복문-2
강의명 : 08 break문, continue문
강의명 : 09 코딩해 보세요

for문, 중첩 반복문-2

각 반복문의 쓰임

for문에서 초기화식, 조건식, 증감식은 생략이 가능합니다.

for(;;)

이렇게 표현이 가능하다.

중첩 반복문
반복문이 중첩되어 구현되는 경우
반복문 내부에 또 다른 반복문이 있음
외부 반복문과 내부 반복문 간의 변수 값 면화에 유의 하며 구현해야 함

for를 이용한 반복문 문제
구구단을 구현하라

public class NestedLoop {
	public static void main(String[] args) {
		
		int dan;
		int count;
		
		for(dan = 2; dan <= 9; dan++) {
			for(count = 1; count <= 9; count++) {
				System.out.println(dan + " X " + count + " = " + dan * count);
			}System.out.println();
		}
	}
}

break문, continue문

break문
감싸고 있는 블록의 제어를 빠져오는 기능
반복문, 조건문, switch-case등과 같이 쓰이며 현재 수행하고 있던 블록에서 수행을 중지하고 외부로 제어가 이동함
반복문과 같이 사용하면 특정 조건일 때 반복을 중지 하는 기능을 구현할 수 있음

continue문
반복의 수행 중 조건문과 조건이 맞는 경우 이후 블록 내부의 다른 수행문을 수행하지 않음


break 예제

public class BreakExample {
	public static void main(String[] args) {
		
		int sum = 0;
		int num = 0;
		for(num = 1; ; num++) {
			
			sum += num;
			if(sum >= 100)
				break;
		}
		
		System.out.println(sum);
		System.out.println(num);
		
	}
}

continue 예제
1씩 증가시키는 수가 3의 배수일때만 출력하라!

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);
		}
		
	}
}

break, continue문제
구구단을 출력할 때 짝수 단만 출력하면서 단보다 곱하는 수가 작거나 같을 때까지만 출력하게요.

public class BreakContinueTest {
	public static void main(String[] args) {
		
		int dan;
		int count;
		
		for(dan = 2; dan <=9; dan++) {
			
			if(dan %2 != 0) continue;
			
			for(count = 1; count <= 9; count++) {
				System.out.println(dan + "X" + count + "=" + dan*count);
				if(count >= dan) break;
			}
			System.out.println();
		}
	}
}


코딩해 보세요

코딩도 수학 처럼 문제를 쭉 풀어봐야 한다.

수업에서 문제를 Github으로 코드를 주었다. 그것을 해결하라

문제 1 해답:

public class Q1 {
	
	public static void main(String[] args) {
		
		char operator = '+';
		int num1 = 10;
		int num2 = 5;
		
		if(operator == '+') {
			System.out.println("결과값은 " + (num1 + num2));
		} 
		else if(operator == '-') {
			System.out.println("결과값은 " + (num1 - num2));
		}
		else if(operator == '*') {
			System.out.println("결과값은 " + (num1 * num2));
		}
		else if(operator == '/') {
			System.out.println("결과값은 " + (num1 / num2));
		}
		else {
			System.out.println("사칙 연산이 아닙니다.");
		}
		
		switch(operator) {
		case '+':
			System.out.println("결과값은 " + (num1 + num2));
			break;
		case '-':
			System.out.println("결과값은 " + (num1 - num2));
			break;
		
		case '*':
			System.out.println("결과값은 " + (num1 * num2));
			break;
		case '/':
			System.out.println("결과값은 " + (num1 / num2));
			break;
		default:	
			System.out.println("사칙 연산이 아닙니다.");
		}
	}
}

문제 2 해답:


public class Q2 {
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		System.out.println("홀수 값을 입력하세요:");
		
		int linecount = sc.nextInt();
		int spacecount = linecount/2 + 1;
		int starcount = 1;
		for(int i=0; i<linecount; i++) {
			for(int j=0; j<spacecount; j++) {
				System.out.print(" ");
			}
			for(int j=0; j<starcount; j++) {
				System.out.print("*");
			}
			System.out.println();
			
			if(i<linecount/2) {				
				spacecount-=1;
				starcount+=2;
				
			}
			else {
				spacecount+=1;
				starcount-=2;

			}
		}
	}
}

좋은 웹페이지 즐겨찾기