[Java] 제어문(조건문, 반복문)

seonjeong·2022년 12월 25일
0

Java

목록 보기
5/26
post-thumbnail

💖 조건문

> < >= <= == != : 대소비교, 값을 비교
&& || ! : 논리 연산자와 같이 사용하는 경우가 있다

🔥 if

형식

if( 조건 ) { -> 논리(true / false)
	처리
}

예시

int number = 7;

if(number > 0) {
	System.out.println("number는 0보다 큽니다");
}

if(number == 7) {
	System.out.println("number는 7입니다");
}

if(number > 0 && number <= 10) { // 1 ~ 10
	System.out.println("number는 0보다 크고 10보다 작거나 같습니다");
}

if(number > 0 || number <= 5) { 
	System.out.println("number는 0보다 크거나 5보다 작거나 같습니다");
}

// console
/*
number는 0보다 큽니다
number는 7입니다
number는 0보다 크고 10보다 작거나 같습니다
number는 0보다 크거나 5보다 작거나 같습니다
*/
// b == false -> !b
if(b == false) {
	System.out.println("b == false 입니다");
}

if(!b) {
	System.out.println("b == false 입니다");
}

// console
/*
b == false 입니다
b == false 입니다
*/

🔥 else

형식

if( 조건 ) {
	처리1
}
else {
	처리2
}

예시

int count = 8;

if(count < 6) {
	System.out.println("count는 6보다 작습니다");
}
else {
	System.out.println("count는 6보다 크거나 같습니다");
}

// 삼항연산자
String str = (count < 6) ? "count는 6보다 작습니다" : "count는 6보다 크거나 같습니다";

// console
// count는 6보다 크거나 같습니다
String str1 = "worl";

str1 = str1 + "d";
System.out.println("str1 = " + str1);

if(str1 == "world") {
	System.out.println("str1은 world입니다");
}  //  -> false로 판단됨

// equals -> 정확하게 비교
if(str1.equals("world") == true) {
	System.out.println("equals str1은 world입니다");
}  // -> true로 판단됨

// console
// equals str1은 world입니다

🔥 else if

형식

if( 조건 ) {
	처리1
}
else if( 조건 ){
	처리2
}
else if( 조건 ){
	처리3
}
	:
else { // -> 필수는 아님 
	처리n
}    

예시

int count = 65;

if(count >= 90) {
	System.out.println("A학점입니다");
}
else if(count >= 80) {
	System.out.println("B학점입니다");
}
else if(count >= 70) {
	System.out.println("C학점입니다");
}
else {
	System.out.println("재시험입니다");
}

// console
// 재시험입니다
// if안에 if문
count = 95;

if(count >= 90) {
	if(count >= 95) {
    	System.out.println("A+ 입니다");
    }
    else {
    	System.out.println("A 입니다");
    }
}

if(count >= 90 && count <= 100) {
	System.out.println("A+ 입니다");
}
else if(count >= 90 && count < 95) {
	System.out.println("A 입니다");
}

// console
// A+ 입니다 -> 둘 다 같은 결과를 출력

🔥 switch

  • 조건 분기 제어문
  • 값이 명확해야 한다
  • 범위를 설정할 수 없다
  • 소수(실수)값을 사용할 수 없다

형식

switch( 변수 ) { 
	case 1: 			// 1 == 값 	-> if(변수 == 1)과 같음
    	처리1
        break;
    case 2: 
    	처리2
        break;
        
          :
          
    case n: 
    	처리n
        break;
    
	default:			// else
    	해당되는 값이 없을 시에 실행
        생략 가능
}

예시

int choice;
choice = 3;

switch(choice) {
	case 1:
    	System.out.println("처리1 입니다.")
        break;
	case 2:
    	System.out.println("처리2 입니다.")
        break;
	case 3:
    	System.out.println("처리3 입니다.")
        break;
	default:
    	System.out.println("1 ~ 3이 아닙니다.")        
}

// console
// 처리3 입니다

💖 반복문(loop)

원할 때까지(조건이 참) 반복처리하는 제어문

🔥 for

형식

for( 초기화; 조건식; 연산식) {
	처리
}

예시

int i;

for(i = 0; i < 5; i++) {
	System.out.print("for loop i = " + i);
}

// console
// 01234
// 2중 for
for(int n = 0; n < 3; n++) { // n = 0 1 2
	System.out.println("for loop n = " + n);
    
    for(int k = 0; k < 2; k++) {
    	System.out.print("\tfor loop k = " + k)
    }
}

// console
/*
for loop n = 0
	for loop k = 0
    for loop k = 1
for loop n = 1
	for loop k = 0
    for loop k = 1
for loop n = 2
	for loop k = 0
    for loop k = 1
*/

응용 (while + if + array)

int array[] = { 2, 3, 5, 6, 8};
int i;

for(i = 0; i < array.length; i++) {
	System.out.print(array[i]);
}

for(i = 0; i < array.length; i++) {
	if(array[i] == 5) {
    	System.out.println("5를 찾았습니다");
    }
}

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

// console
/*
23568
5를 찾았습니다
홀수가 있습니다. 3입니다.
홀수가 있습니다. 5입니다.
*/

🔥 while

형식

초기화
while( 조건식 ) {
	처리
    연산식
}

예시

int w;
w = 0; 		// 초기화

while(w < 5) {
	System.out.println("while loop " + w);
    w++;	// 연산식
}
// 2중 while
int w1, w2;
w1 = 0;

while(w1 < 4) {
	System.out.println("w1 = " + w1);
    
    w2 = 0;
    while(w2 < 3) {
    	System.out.println("\tw2 = " + w2);
        w2++;
    }
    w1++;
}

// console
/*
w1 = 0
	w2 = 0
	w2 = 1
	w2 = 2
w1 = 1
	w2 = 0
	w2 = 1
	w2 = 2
w1 = 2
	w2 = 0
	w2 = 1
	w2 = 2
w1 = 3
	w2 = 0
	w2 = 1
	w2 = 2
*/

응용 (while + if + array)

int array[] = { 2, 3, 5, 6, 8 }
int i;

i = 0;
while(i < array.length) {
	System.out.print(array[i]);
    i++;
}

i = 0;
while(i < array.length) {
	if(array[i] == 5) {
    	System.out.print("5를 찾았습니다");
    }
    i++;
}

i = 0;
while(i < array.length) {
	if(array[i] % 2 == 1) {
    	System.out.print("홀수가 있습니다. " + array[i] + "입니다." );
    }
    i++;
}


// console
/*
23568
5를 찾았습니다
홀수가 있습니다. 3입니다.
홀수가 있습니다. 5입니다.
*/

🔥 do while

형식

do{
	처리
    연산식
} while( 조건식 );

예시

int w3;
w3 = 0;  // w3 = 5일 경우, 조건에 충족하지는 못하나 한 번 처리됨.
		 //   -> console에 do while w3 = 5가 출력됨

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

// console
/*
do while w3 = 0;
do while w3 = 1;
do while w3 = 2;
do while w3 = 3;
do while w3 = 4;
*/

🔥 break

loop정지 -> escape
loop문과 같이 사용한다(for, while, do while, switch)

형식

// for문에서 사용
for(int i = 0; i < 10; i++) {
	처리1
    if(조건) {
    	break;
    }
    처리2
}

// while문에서 사용
w = 0;
while(w < 10) {
	if(조건) {
    	break;
    }
    w++;
}

예시

for(int i = 0; i < 10; i++) {
	System.out.println("for loop " + i);
    
    if(i == 3) {
    	System.out.println("i는 3입니다);
        break;
    }
}

// console
/*
for loop 0
for loop 1
for loop 2
i는 3입니다
*/
int number[] = {11, 22, -15, 45}

for(int i = 0; i < number.length; i++) {
	System.out.println("number[" + i + "] = " + number[i]);
    
    if(number[i] < 0) {
    	break;
    }
}

// console
/*
number[0] = 11
number[1] = 22
number[2] = -15		-----> 출력문이 위에 있기 때문에 출력 후 탈출
*/

2중 for문에서의 break사용

  1. loop문 수에 맞춰서 break를 설정
  2. break 설정
// 1. loop문 수에 맞춰서 break를 설정
boolean b = false;

for(int i = 0; i < 10; i++) {
	System.out.println("i = " + i);
    
    for(int j = 0; j < 8; j++) {
    	System.out.println("\tj = " + j);
        
        if(i == 5 && j == 4) {
        	b = true;
        }
        if(b) {
        	break;
        }
    }
    if(b) {
    	break;
    }
}

🔥 continue

profile
🦋개발 공부 기록🦋

0개의 댓글

관련 채용 정보