제어

codakcodak·2023년 6월 28일
0

Java

목록 보기
4/17

If

  • if

    if(조건식){
      수행문;      // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 수행됨 
     }             // 조건식이 '참'이 아니면(조건에 맞지 않는 경우) 수행문이 수행되지 않음
  • if - else

    if( 조건식) {
    
        수행문1;   // 조건식이 '참'인 경우에 수행됨
    }
    else{
        수행문2;    // 조건식이 '참'이 아닌 경우에 수행됨
    }
  • if-else if-else

    • 하나의 상황에 대한 조건이 여러개로 나뉘고 각 조건에 다른 수행이 이루어져야 할 경우 사용

    • 각 조건은 상호 배타적. 즉, 하나의 조건식이 만족하면 다른 조건식은 비교하지 않음

    if(조건식1){
        수행문1;        // 조건식1이 '참'인 경우 수행하고 전체 조건문을 빠져나감
    }
    else if(조건식2){
        수행문2;        // 조건식2이 '참'인 경우 수행하고 전체 조건문을 빠져나감
    }
    else if(조건식3){
        수행문3;        // 조건식3이 '참'인 경우 수행하고 전체 조건문을 빠져나감
    }
    else{
        수행문4;        // 위 조건이 모두 해당되지 않는 경우 수행됨 (디폴트 조건)
    }

    수행문5;            // if-else if-else 문이 끝나면 수행됨
  • Example
public class ConditionTest {

	public static void main(String[] args) {
		int age;
		Scanner scanner=new Scanner(System.in);
		
		age=scanner.nextInt();
		
		if (age<=13) {
			System.out.println("초등학교에 갑니다.");
		}else if (age<=16){ 
			System.out.println("중학교에 갑니다.");
		}else if (age<=19){ 
			System.out.println("고등학교에 갑니다.");
		}else
			System.out.println("대학교에 가거나 청년이 됩니다.");
	}
}
13
초등학교에 갑니다.

Switch

  • if - else if - else 문을 사용할 때 복잡하고 번거로운 부분을 가독성 좋게 구현

  • 비교 조건이 특정 값이나 문자열인 경우 사용

  • break 문을 사용하여 각 조건이 만족되면 switch 블럭을 빠져나오도록 함

  • 자바 14부터 좀 더 간결해진 표현식이 지원 됨 ( break 사용하지 않음 )

  • Example

public class SwitchTest {

	public static void main(String[] args) {
		String medal = "Gold";
		
		switch(medal) {
		
			case "Gold":
				System.out.println("금메달 입니다.");
				break;
			case "Silver":
				System.out.println("은메달 입니다.");
				break;
			case "Bronze":
				System.out.println("동메달 입니다.");
				break;
			default:
				System.out.println("메달이 없습니다.");
				break;
		}

	}
}
금메달 입니다.

While

  • while
    while(조건식){
      수행문;      // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 반복됨
     }            
  • Example
public class WhileTest {

	public static void main(String[] args) {
		int num=1;
		int sum=0;
		
		while(num<=10) {
			sum+=num;
			num++;
		}
		System.out.println(num);
		System.out.println(sum);
	}
}
11
55
  • do while

    do(조건식){
      수행문;      // 조건식이 '참'인 경우에(조건에 맞는 경우) 수행문이 반복됨
     }while(조건식);
     
  • Example
import java.util.Scanner;

public class DowhileTest {

	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		int input;
		int sum=0;
		do {
			input=scanner.nextInt();
			sum+=input;
		}while(input!=0);
		System.out.println(sum);
	}
}
1
10
100
1000
0
1111

For

  • Example1
public class ForTest {
	public static void main(String[] args) {
		int sum=0;
		int num=0;
		
		for(;num<=10;num++) {
			sum+=num;
		}
		System.out.println(num);
		System.out.println(sum);
	}
}
11
55
  • Example2
public class NestedForTest {
	public static void main(String[] args) {
		int dan;
		int time;
		
		for (dan=2;dan<=9;dan++) {
			for (time=1;time<=9;time++) {
				System.out.println(dan+"x"+time+"="+dan*time);
			}
			System.out.println();
		}
	}
}
2x1=2
2x2=4
2x3=6
2x4=8
...
9x7=63
9x8=72
9x9=81

Break

  • 감싸고 있는 제어문의 블록을 빠져 나오는 기능 (switch문 에서도 사용)

  • 반복문에서는 주로 조건문(if)와 같이 사용하여 조건에 해당되는 경우 반복 수행을 멈추고 반복문 외부로 수행이 이동

  • 여러 반복문이 중첩되어 있는 경우엔 break 문이 포함되어 있는 반복문만 빠져 나옴

  • Example

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

Continue

  • 반복문 내부에서 조건문(if)와 같이 사용하며, 조건이 맞는 경우(true 이면) 이후 반복문 블럭 내부의 다른 수행문들을 수행하지 않음
public class ContinueTest {
	public static void main(String[] args) {
		int i;
		
		for (i=0;i<100;i++) {
			if (i%3!=0){
				continue;
			}
			System.out.println(i);
		}
	}
}
0
3
6
...
93
96
99
profile
숲을 보는 코더

0개의 댓글