안녕하세요 땅카입니다

자바의 제어문인 조건문, 반복문과 분기문에 대해서 정리 시작할게요!!

 

제어문은 프로그램을 구성하는 코드가 실행될 때 코드의 처리 순서를 변경할 수 있는 문장입니다. 

명령의 흐름 처리 방법을 지정할 때 사용합니다. 

  • 조건문 : if~else, switch // 조건에 따라 처리하는 명령을 달리하는 문장
  • 반복문 : for, while, do~while // 일정한 조건이 충족될 때까지 동일한 명령을 반복적으로 처리하는 문장
  • 분기문 : break, continue, return //  강제로 명령의 처리 순서를 바꾸는 문장

여기서 퀴즈 !

분기문은 강제로 명령을 종료하는 문장일까요?

더보기

정답은 아니요! 처리 순서를 바꾸는 문장입니다

 

조건문에는 if문이 있습니다. 

if문의 조건식이 참이면 코드가 실행됩니다.

 

if~else문은 if문과 else문을 함께 사용하여 조건식의 결과에 따라 특정 코드 또는 코드 블록의 실행을 선택하는 조건입니다. 

 

if~else if문은 if~else문과 유사하지만 else문이 서로 다른 if문의 조건식과 쌍을 이루는 조건문입니다.

else if문 코드 블록 마지막에 else문의 코드 블록을 추가할 수 있습니다.

위의 조건에서 참이 나오지 않으면 아래로 내려가면서 조건을 따집니다. 

그래도 참이 나오지 않으면 else문을 실행합니다.

 

중첩 if~else문은 if문 또는 else문 코드 블록 내에 다른 if문, if~else문, if~else if문 등이 포함된 조건문입니다. 

외부 if문의 조건식이 참이면 내부 if문의 코드 블록을 실행합니다.

 

삼항 연산자는 조건식을 확인한 다음 조건이 참인지 거짓인지에 따라 값을 반환합니다. 

ex. String message = (age > 10) ? " 투표할 자격이 있습니다." : "투표할 자격이 없습니다.";

                                     조건식    ?       조건식이 참이면            :      조건식이 거짓이면

 

switch문은 if~else if문처럼 많은 선택 사항이 있고 각 선택 사항에 대해 특정 코드 또는 코드블록을 실행하는 조건문입니다.

ex. switch (연산식 또는 변수) {

                  case 값1  :

                              // 실행코드
                              break; //필수

                  case 값2  :
                              // 실행코드

                              break;

}

 

여기서 퀴즈!

할당 연산자인 ++과 --는 if문의 조건식에서 사용할 수 있을까요?

더보기

정답은 X

 

 

반복문은 일정 횟수만큼 어떤 코드를 반복하여 실행하는 제어문입니다. 

반복적으로 실행되는 동작을 루프(loop)라고합니다. 

 

for문은 특정 횟수만큼 실행해야하는 루프를 효율적으로 쓸 수 있는 반복문입니다.

작업을 반복하는 횟수를 알고 있을 때 유용합니다.

ex. for(초기화식; 조건식; 증감식) {} // 참일 때만 실행됩니다.

 

for~each문은 배열 또는 컬렉션 요소를 순회하는 데 사용하며 증가 또는 감소 연산자가 필요하지 않습니다.

ex. for(자료형 변수: 배열 또는 컬렉션) {  // 해당 배열이 끝날 때까지 코드를 실행해라

            // 반복 실행 코드

}

 

while문은 조건식이 참이면 루프를 계속 반복하는 반복문입니다. 

무한 반복을 피하기 위하여 조건식은 대개 비교 또는 논리 연산식입니다.

while문은 반복 횟수가 정해져 있지 않을 때 사용합니다.

while문 안에 증감식을 넣어서 break가 되도록 합니다.

 

do while문은 while문과 for문처럼 조건식에 의해 반복 실행된다는 점은 비슷하지만 조건식을 확인하기 전에 코드 블록의 코드가 한 번 실행된다는 점이 다릅니다. 아래에 있는 while의 조건식 동안 do가 실행됩니다. while의 조건식에 맞지 않아도 최소한 do는 1번 실행됩니다.

ex. do{

            //실행 코드

} while (조건식) ;

 

중첩 반복문은 반복문 안에 또 다른 반복문을 원하는 만큼 포함한 것입니다.

외부 루프의 첫 번째 반복이 시작된 후 내부 루프가 시작됩니다. 

순환같네요.

 

중첩 반복문으로 역삼각형을 만들어 보았습니다.

package review;
import java.util.Scanner;
public class Loop04 {
//별표로 역삼각형 만들기
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		System.out.print("길이를 입력해주세요 : "); //몇 줄을 만들고 싶느냐 였어 진짜 길이가 아니었네 ㅋㅋ
		int len = scan.nextInt();
		
		for(int i = 0; i < len; i++) {
			for(int j = 0; j < i; j++) {
				System.out.print(" ");
			}
			for(int j = 0; j < (2*len) -1 -(i*2); j++) {
				System.out.print("*");
			}
			System.out.println("");
		}
	}

}

여기서 퀴즈!

for( int x; x < 5; x--)은 맞는 문법일까요?

더보기

정답은 X!  저 조건식이면 무한 루프에 빠지게 됩니다. x++이어야 for문이 끝날 수 있어요!

 

분기문은 원할 때마다 반복문에서 벗어나거나 반복문을 시작하도록 실행 흐름을 직접 제어할 수 있는 제어문입니다.

 

break문은 원할 때마다 반복문의 실행을 중지하거나 종료할 수 있습니다.

 

continue문은 특정 조건을 건너뛰고 나머지를 계속 실행하려는 경우에 사용합니다.

반복문의 블록 내부에서 for문의 증감식 도는 while문의 조건식으로 이동하는 역할을 합니다.

 

여기서 퀴즈!

break문은 얼마나 반복해야 하는 지 알 수 없거나 특정 조건에 따라 반복문을 종료할 때 사용할까요?

더보기

정답은 O! 


북 마켓 프로젝트


연습문제

 

1. 제어문, 조건문, 반복문 ② 분기문, break, continue

2.

3.

4.

5. ①, ②

6.

7.

8.

9.

10. ① //return은 즉시 메소드를 종료시킵니다.

+ Recent posts