[Java] 조건문과 반복문

김세림·2024년 4월 23일

Java

목록 보기
4/24
post-thumbnail

조건문과 반복문


조건문

조건문에는 크게 두가지, if문과 switch문이 있다.

if문

if(조건) { }

과 같은 형태를 가지며 이외의 조건들도 else문을 통해 추가할 수 있다.

//ex)
int a = 10;
if (a = 10) { //소괄호 조건이 true라면 
	System.out.print("a는 10입니다.); //값이 출력됨.
}else if(a <10){ //a가 10이 아닐때 if문 안의 소괄호 조건이 또다시 true라면
	System.out.print("a는 10보다 작습니다.); //값이 출력됨.
}else{ // 그것조차 false여서 a가 10보다 작지않다면 
	System.out.print("a는 10보다 큽니다.); //값이 출력됨.
}

중첩 if(조건)

위 예제처럼 if문 하나만이 아닌 if문 안의 if문을 작성하는 방식이다.
이와 관련된 예제인 가위바위보 만들기 링크이다.
가위바위보

switch문

switch(피연산자)/case(조건)

switch case문이 끝날때 break;를 걸어 연산문이 끝났다는 것을 알려주어야하며, case조건이 다 아닐때를 대비해 default: (연산)을 넣어주어야한다.(default에는 break를 달지않아도 되며, 딱히 없다면 생략가능하다.)

만약 break를 넣지않았고, default가 마지막에 있다면 case문의 조건이 맞으면 그 안에 있는 연산을 다 한 뒤 default까지 실행해버리는 경우가 생길 수 있다.

//ex)
int month = 10;
String monthString;
switch(month){
	case 1:
    	monthString = "1월입니다.";
        break;
    ...
    case 12:
    	monthString = "12월입니다.";
        break;
    default:
    	monthString = "알 수 없음";
}
system.out.print(monthString);

if vs switch

ifswitch
복합조건을 지원피연산자 한개에 대한 조건만 지원
코드중복이 많음코드중복이 적음
//ex) 위 달을 표시하는 switch문을 if로 바꾸면
if(month == 1){
	monthString = "1월입니다.";
}else if(month == 2){
...
	monthString = "12월입니다.";
}
//와 같이 코드중복이 많이 나옴.

반복문

반복문에는 크게 두가지, for문과 while문이 있다.

for문

for(초기값; 조건문; 증가연산){(연산)}

의 형태를 띄고 있다.

for(int i=0; i<10; i++){
	System.out.print(i); //0부터 9까지 나오게된다.
}

향상된 for문(for(변수타입 변수명 : 목록변수){(연산)}

의 형태를 띄고있다.
기존에는 그냥 for문만 사용해보아서 향상된 for문은 아직 나에겐 어색하다..
연속된 변수목록을 출력할 때 쓰이며, 그냥 for문과는 다르게 값을 2개로 줄여준다.

int[] numbers = {1,3,5,7};
for(int number : numbers){
	System.out.print(number + " "); //1,3,5,7이 순서대로 출력된다.
}

//-> 기존 for문으로 나오게 한다면
for(int number = 0; number < numbers.length; i++){
	System.out.print(numbers[number]+" "); //과 같이 표현해야한다.
}

여기서 잠깐!

.length는 배열의 길이를 구하는 메서드이다.
length를 사용하면, 위 예제에서 numbers 배열의 갯수가 바뀌게 되면 for문 조건에 있는 numbers.length의 수를 바꾸어야하는 하드코딩보다 length메서드를 사용하여 효과적으로 표현할 수 있다.

while문

while(조건){(연산)}

의 형태를 띄고있다.
초기값이 없이 조건문만 명시하여 반복하며, 무한루프를 조심해야하는 대표적인 반복문이다.
조건이 true이면 연산을 계속하고 false이면 반복문을 빠져나오게된다.

do{(연산)} while(조건)

의 형태를 띄고있다.
최초 1회는 반드시 연산 수행을 한 후 조건문을 체크하여 더 반복할지를 결정한다.

break;

위 switch문에서도 말했듯이 연산문이 끝났다는 것을 알려주는데 사용하며, 반복문에서 break 명령을 호출하면 가장 가까운 블럭의 for문 또는 while문을 중단한다.

//ex)
for (int i = 0; i < 10; i++) {
	System.out.println("i: " + i);
	if (i == 2) {
		break; // i 가 2일때 가장 바깥 반복문이 종료.
	}
	for (int j = 0; j < 10; j++) {
		System.out.println("j: " + j);
		if (j == 2) {
			break; // j 가 2일때 가장 안쪽 반복문이 종료.
		}
	}
}//그리하여 나온 출력물은 
//i=0 j=0, j=1 / i=1 j=0 j=1 / i=2 출력되어 끝이 난다.

continue;

반복문에서 해당 순서를 패스하고 싶을 때 사용한다.
이를 사용한 선택적 구구단은 다음 링크에서 확인이 가능하다.
구구단

0개의 댓글