[Eclipse] 조건문, 반복문

2021. 6. 16. 16:17JAVA

* 조건문(if, switch)

 

- Java에서 조건문은 if문과 switch문 두 가지 뿐이다. 

- if문이 주로 사용되며, 경우의 수가 많은 경우 switch문을 사용할 것을 고려한다. 

- 모든 switch문은 if문으로 변경이 가능하지만, if문은 switch문으로 변경할 수 없는 경우가 많다.

 


*if

 

- if문은 if, if-else, if-else if-else의 세가지 형태가 있다. 

- 조건식의 결과는 반드시 true 또는 false이어야 한다.

if(조건식1) {
	//조건식1의 결과가 true일때 수행될 문장들
}else if (조건식2){
	//조건식1의 결과가 false, 조건식2의 결과가 true일때 수행될 문장들
}else{
	//모든 조건식의 결과가 false일때 수행될 문장들
}
		//국영수 점수를 입력받아 총합, 평균, 학점구하기
        
        Scanner sc = new Scanner(System.in);	//콘솔창에 입력받는 함수

		System.out.print("국어점수입력: ");
		int kor=sc.nextInt();					//콘솔창에 입력
		System.out.print("영어점수입력: ");
		int eng=sc.nextInt();
		System.out.print("수학점수입력: ");
		int math=sc.nextInt();
		
		System.out.println("총합 : "+(kor+eng+math));
		System.out.println("평균 : "+(kor+eng+math)/3.0f);
		
		if(kor>=90) {
			System.out.println("국어학점은 A");
		}else if(kor>=80) {
			System.out.println("국어학점은 B");
		}else if(kor>=70) {
			System.out.println("국어학점은 C");
		}
		if(eng>=90) {
			System.out.println("영어학점은 A");
		}else if(eng>=80) {
			System.out.println("영어학점은 B");
		}else if(eng>=70) {
			System.out.println("영어학점은 C");
		}
		if(math>=90) {
			System.out.println("수학학점은 A");
		}else if(math>=80) {
			System.out.println("수학학점은 B");
		}else if(math>=70) {
			System.out.println("수학학점은 C");
		}

결과

 

 

*switch

 

- 조건식과 조건식 값은 정수, 문자, 문자열만 가능

- 조건식의 계산결과와 일치하는 case문으로 이동 후 break문을 만날 때까지 문 장들을 수행한다.

    (break문이 없으면 switch문의 끝까지 진행한다.)

- 일치하는 case문의 값이 없는 경우 default문으로 이동한다. (default문 생략가능) 

- case문의 값으로 변수를 사용할 수 없다.(리터럴, 상수만 가능)

switch(조건식){
	case 값1 :
    	//조건식의 결과가 값1과 같을 경우 수행될 문장들
        //..
        //break;
	case 값2 :
    	//조건식의 결과가 값2과 같을 경우 수행될 문장들
        //..
        //break;
    //...
    	default:
    	//조건식의 결과와 일치하는 case문이 없을때 수행될 문장들
        //...
  }
		//예제
        int score = 80;
		
		switch (score) {
			case 90:
				System.out.println("성적 A");
				break;
			case 80:
				System.out.println("성적 B");
				break;
			case 70:
				System.out.println("성적 C");
				break;

			default:
				System.out.println("성적 F");

-결과: 성적 B

 

 


 

* 반복문(for, while, do-while)

- 실행문을 반복해서 수행할 때 사용
- for문과 while문은 서로 변경가능하다. 

- 반복회수가 중요한 경우에 for문을, 그 외에는 while문을 사용한다. 

- do-while문은 while문의 변형으로 블럭{}이 최소한 한번은 수행될 것을 보장한다.

 

 


* for문

for(초기화; 조건식; 증감식){
	//조건식이 true일때 수행될 문장
 }
//1부터 10까지의 정수 더하기
int sum = 0;
for(int i = 1; i <= 10, i++){
	sum += i;
 }
  System.out.println("sum값: " + sum);
 
 
 
 //1~50까지 중에 5의배수 값만 합계를 구하기
 int sum1 = 0;
for(int i = 1; i <=50; i++) {
	if(i%5==0){
		sum1 += i;
    }
 }
    System.out.println("sum1값: " + sum1);
    
//결과
sum값: 55
sum1값: 275
//이중 for문으로 구구단 출력
for(int i = 1; i <= 9; i++) {
	for(int j = 1; j <= 9; j++) {
		System.out.println(i + " * " + j + " = " + i*j );
	}
	System.out.println("----------------");
}

//결과
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6
1 * 7 = 7
1 * 8 = 8
1 * 9 = 9
----------------
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
----------------
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
----------------
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
----------------
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
----------------
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
----------------
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
----------------
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
----------------
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
----------------
//입력값 받아서 홀수의 합만 구하기
		
		int sum = 0;
		Scanner sc = new Scanner(System.in);
		System.out.print("숫자입력: ");
		int j = sc.nextInt();
		
		for(int i = 0; i <= j; i++) {
			if(i%2!=0) {
				sum += i;
			}
		}
		System.out.println("1부터 입력받은값까지 홀수의 합: " + sum);
        
 //결과
 숫자입력: 100
 1부터 입력받은값까지 홀수값: 2500

 

 

* while문

while(조건식) {
	//조건식의 연산결과가 true일때 수행될 문장
}
//입력값1과 2를 받아서 덧셈해주기(무한반복)
//입력값이 -1이면 while문 빠져나오기
Scanner sc = new Scanner(System.in);
		
while(true) {
	System.out.print("입력값1(-1은 종료) :");
	int input1 = sc.nextInt();
    
    	if(input1 == -1) {
		break;
	}
    
	System.out.print("입력값2 :");
	int input2 = sc.nextInt();
			
	System.out.println("합계: " + (input1 + input2));
			

}
System.out.println("계산기 종료");

//결과
입력값1(-1은 종료) :5
입력값2 :4
합계: 9
입력값1(-1은 종료) :-1
계산기 종료
		//랜덤값 맞추기 게임
        
        	int random = (int)(Math.random() * 30) + 1;
		int count = 0;
		
		while(true) {
		Scanner sc = new Scanner(System.in);
		System.out.print("값을 입력해주세요: ");
		int input = sc.nextInt();
		
		count++;	//몇번만에 맞췄는지 count해주기
		
		if(random == input) {
			System.out.println("값을 맞췄습니다.");
			System.out.println(count + "번만에 맞췄습니다. 종료!");
			break;
		}else if(input > random) {		//힌트주기
			System.out.println("down");
			
		}else if(input < random) {
			System.out.println("up");
		}

		}	//while종료
        
//결과
값을 입력해주세요: 15
down
값을 입력해주세요: 7
down
값을 입력해주세요: 4
up
값을 입력해주세요: 5
값을 맞췄습니다.
4번만에 맞췄습니다. 종료!

 

 

* do-while문

- while문의 변형. 블럭{}을 먼저 수행한 다음에 조건식을 계산한다.

- 블럭{}이 최소한 1번 이상 수행될 것을 보장한다. 

do{
	//조건식의 연산결과가 true일때 수행될 문장
    //처음엔 무조건 수행함
}while(조건식)
int i = 0;
int sum = 0;
			
do {
	i++;
	sum += i;
}while(i <= 10);
System.out.println(sum);


//결과
66

*break문

 

- 주로 if문과 함께 사용해서 특정 조건을 만족하면 반복문을 벗어나게 한다.

int sum = 0;
int i = 0;

while(true){
	if(sum > 100)
    	break;		//sum이 100초과면 while문을 빠져나감
       i++;
       sum+=i;
  }

 

* continue문

- 자신이 포함된 반복문의 끝으로 이동한다.(다음 반복으로 넘어간다.)

- continue문 이후의 문장들은 수행되지 않는다.

for(int i = 0; i <= 10; i++){
	if(i%3 ==0)
    	continue;		//3의배수는 건너뛰고 반복문 수행
    system.out.println(i);
}

//결과
1
2
4
5
7
8
10

 

'JAVA' 카테고리의 다른 글

[Eclipse] 누적계산기  (0) 2021.06.17
[Eclipse] 가위바위보 게임  (0) 2021.06.17
[Eclipse] 연산자  (0) 2021.06.16
[Eclipse] 변수  (0) 2021.06.15
[Eclipse] JAVA시작하기  (0) 2021.06.15