염비 2024. 9. 1. 17:19

1. 조건문(Conditional Statement)

(1) if statement

1) 사용방법

if(조건1) { // a > b && c < d
	// 조건1이 true일 때 할 일;
}else if(조건2){
	// 조건1가 false이고 조건2가 true일 때 할 일;
}
...
else if(조건N){
	// 앞에 나온 모든 조건 false, 조건N은 true일 때 할 일;
}else{
	// 모든 조건 실패 시 할 일;
}

 

다양한 케이스 존재

if    

if     else

if     else if

if     else if     else

package day05;

import java.util.Random;

import util.MyUtil;

public class IfEx {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyUtil.p(MyUtil.RED + "If Example" + MyUtil.END);
		
		Random rd = new Random();
		int a = rd.nextInt(151);
		
		if(a > 100) {
			MyUtil.p(MyUtil.GREEN + "a는 매우 큽니다 : " + a + MyUtil.END);
		}else if(a > 50) {
			MyUtil.p(MyUtil.GREEN + "a는 큽니다 : " + a + MyUtil.END);			
		}else {
			MyUtil.p("a는 결코 크지 않습니다 : " + a);
		}
		
		// nested
		// 영어와 수학 점수가 모두 60점 이상이면 Pass, 아니면 Fail
		int eng = rd.nextInt(101);
		int math = rd.nextInt(101);
		
		// 과제 : 위 로직을 구현하시오.
		// 영어 : **점, 수학 : **점, Pass or Fail
		if( eng >= 60 && math >= 60 )
			MyUtil.p("영어 : " + eng + "점, 수학 : " + math + "점, Pass");
		else
			MyUtil.p("영어 : " + eng + "점, 수학 : " + math + "점, Fail");			
		
		
		// 그 외 방법1
		String PF = "";
		if(eng >= 60 && math >= 60)
			PF = "Pass";
		else
			PF = "Fail";
		
		MyUtil.p("영어 : " + eng + "점, 수학 : " + math + "점, " + PF);
	}

}

 

(2) switch

조건식의 결과가 아니라 값만으로 비교

switch ~ case

if문보다 속도가 빠름

1) 사용방법

switch(변수) {
	case 값1:
    	값1일 때 수행할 문장;
        break;
    case 값2:
    	값2일 때 수행할 문장;
        break;
    ...
    default:
    	모든 case에 해당하지 않을 때 수행할 문장;
}
package day05;

import java.util.Random;

import util.MyUtil;

public class SwitchEx {

	public static void main(String[] args) {
		Random rd = new Random();
		
		int i = rd.nextInt(3); // i는 0, 1, 2중 하나
		
		switch(i) {
			case 0:
				MyUtil.p("아, 0이시네요. 꽝입니다.");
				break;
			case 1:
				MyUtil.p("아, 1이시네요. 이것도 꽝입니다.");
				break;
			case 2:
				MyUtil.p(MyUtil.RED + "This is the TWO!!!!!" + MyUtil.END);
				MyUtil.p("축!!!! 당첨!!!! 거액의 상품 증정!");
				break;
			default:
				MyUtil.p("엄청난 버그 발생.. 시스템 이상함..");
		}
		
		// 의도적으로 break를 빼는 경우
		int workProcess = rd.nextInt(4);
		MyUtil.p("");
		MyUtil.p(MyUtil.GREEN + "***앞으로의 작업 단계***" + MyUtil.END);
		
		switch(workProcess) {
			case 0:
				MyUtil.p("Step1 : 작업 준비");
			case 1:
				MyUtil.p("Step2 : 개발 준비");
			case 2:
				MyUtil.p("Step3 : 개발 완료");
			case 3:
				MyUtil.p("Step4 : 출시 준비");
		}
		
	}

}

 

 

2. 반복문(Loop Statement)

  • loop, iteration, 뺑뺑이
  • 어떤 작업을 반복해서 수행하는 것
  • while, for, do-while

(1) while

특정 조건을 만족하는 동안(true) 수행

while(조건식){
	조건식이 true일 때 수행할 문장;
}
// 예시
int i = 0;
while(i < 10){
	System.out.println(i);
    	i++;
}
package day05;

import util.MyUtil;

public class WhileEx {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyUtil.p("WHile Statement");
		
		int i = 0;
		while(i < 100) {
			MyUtil.p("Current i = " + i);
			i += 1;
		}
		MyUtil.p("After While i = " + i);
	}
}

 

 

참고

: 무한루프(Infinity Loop)

중단되지 않고 계속 수행됨

while(true){
	할 일;
    	if(탈출해도 돼??)
    		break;
}