제어문

- 코드의 흐름을 제어하는 문장

- 코드의 일정부분을 선택하여 실행하거나 반복하여 실행하는 문장

- 종류

   1. 조건문

      ㄴ if문 : 조건식의 결과가 참과 거짓에 따라 실행 내용을 선택하여 실행하는 제어문

 

   2. 선택문

      ㄴ switch ~ case : 공간이 가지고 있을 값의 경우의 수를 모두 case문으로 작성하여 실행하는 형태

                                   : default는 if문의 else와 비슷한 역할

 

   3. 반복문

     ㄴ while문 : 반복 횟수가 일정하지 않을 때 사용하는 반복문

     ㄴ for문 : 반복 횟수가 일정할 때 사용하는 반복문

 

   * break : if문을 제외한 가장 처음 만나는 중괄호를 벗어날 때 사용하는 키워드 (루프를 벗어나려 할 때 사용)

 

 

조건문
  • if문
if( 조건식 ) {
    종속문장;
}else if( 조건식 ) {
    종속문장;
}else if( 조건식 ) {
    종속문장;
}....
    else {
    종속문장;
}
if(java < python) {
	System.out.println("파이썬");
}else if(java > python){
	System.out.println("자바");
}else {
	System.out.println("같다");
}

 

 

선택문
  • switch ~ case
switch( 공간 ) {
    case 상수1:
        실행내용;
    case 상수2:
        실행내용;
    case 상수3:
        실행내용;
    ........
    default:
        실행내용;
}
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();

double avg = (kor + eng + math) / 3.0;

switch((int)avg/10) {
case 10:			// 경우의 수가 10, 9일 때, 실행 코드는 동일
case 9:
	System.out.println("학점 : A\n합격!");
	break;
case 8:
	System.out.println("학점 : B\n합격!");
	break;
case 7:
	System.out.println("학점 : C\n합격!");
	break;
case 6:
	System.out.println("학점 : D\n합격!");
	break;
default:			// case 에 없는 나머지일 경우
	System.out.println("학점 : F\n불합격!");
}
sc.close();

 

 

반복문

 

  • while문
while( 조건식 ) {
   종속문장;
}
int i = 0;

while(true) {
	System.out.println(i);
	
    if(i == 4) {
	break;
	}
	i++;
}

 

 

  • for문
for ( 초기식; 조건식; 증감식 ) {
   종속문장;
}
int i = 0;

for(int i = 0; i < 5; i++) {
	System.out.println(i);
}

 

 

문제 (4개) 

* 답은 하단 스크롤

- If 문

사용자에게 출생년도 4자리를 입력받으시고 나이를 계산해서 화면에 출력
2004년생 → 20살
1996년생 → 28살
n   년생 → ?살

나이가 20살 이상이면 성인입니다! 출력
나이가 20살 미만이면 미성년자입니다! 출력

 

- switch ~ case 문

여행사 경품추첨 프로그램
사용자에게 여행가고 싶은 달을 숫자로 입력받아(1 ~ 12)
해당하는 계절에 맞는 사은품을 증정한다는 메세지를 출력......

(결과화면)
여행 가고싶은 달 입력 : 5
봄에 여행가시면 황사마스크를 사은품으로 증정합니다!

//[계절별 사은품] 

// 봄 - 황사마스크
// 여름 - 모기퇴치약
// 가을 - 선글라스
// 겨울 - 머플러

 

- while 문

업다운 게임을 구현하려 합니다.
컴퓨터에게 1부터 100 사이의 정답을 생성하도록 코드를 구현한 뒤
사용자가 숫자를 입력하여 정답을 맞추도록 프로그래밍하세요

<게임의 상태>

[ 업  ] 사용자가 정답보다 낮은 값을 입력한 경우
[ 다운 ] 사용자가 정답보다 높은 값을 입력한 경우
[ 정답 ] 사용자가 정답과 같은 값을 입력한 경우, 게임 종료

게임 종료시 총 입력한 횟수를 화면에 출력

 

- for 문

돈을 저축하려 합니다
오늘 저축할 돈은 어제 저축한 돈의 두배로 할 예정이고
첫째날에 1원을 저축하려고 합니다

(Q1) 30일동안 통장에 저축될 돈은 얼마입니까?
(Q2) 40일동안 통장에 저축될 돈은 얼마입니까?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

정답 (4개) 

- if문 정답

System.out.println("출생년도 4자리 입력 : ");
Scanner sc = new Scanner(System.in);
		
int birth = sc.nextInt();
int age = 2023 - birth + 1;

System.out.println(birth + "년생 -> " + age + "살");
if(age > 0) {
	if(age >=20) {
		System.out.println("성인입니다");
	}else {
		System.out.println("미성년자입니다");
	}
}else {
	System.out.println("잘못 입력하였습니다.");
}

 

 

- switch case 문 정답

System.out.print("여행가고 싶은 달 입력 : ");
int month = sc.nextInt();
		
switch(month) {
	case 3:
	case 4:
	case 5:
		System.out.println("봄에 여행가시면 황사마스크를 사은품으로 증정합니다!");
		break;
	case 6:
	case 7:
	case 8:
		System.out.println("여름에 여행가시면 모기퇴치약을 사은품으로 증정합니다!");
		break;
	case 9:
	case 10:
	case 11:
		System.out.println("가을에 여행가시면 선글라스을 사은품으로 증정합니다!");
		break;
	case 12:
	case 1:
	case 2:
		System.out.println("겨울에 여행가시면 머플러을 사은품으로 증정합니다!");
		break;
	default:
		System.out.println("잘못된 선택!");
}

 

 

- while 문 정답

Scanner sc = new Scanner(System.in);
		
int com = (int)(Math.random() * 100) + 1;
int cnt = 0;
		
while(true) {
	System.out.print("정수 입력 : ");
	int user = sc.nextInt();
	
	if(com > user) {
		System.out.println("[업]");
	}else if(user > com) {
		System.out.println("[다운]");
	}else {
		System.out.println("[정답]");
		System.out.println("총 입력 횟수 : " + cnt + "번");
		break;
	}
}

 

 

- for 문 정답

long cost = 1,tot = 0;
int i = 1;
		
while(i <= 40) {
	tot += cost;
	System.out.println(i + "일째 저축 금액 : " + cost + "원\t총 금액 : " + tot + "원");
	cost*=2;i++;
}

 

 

'IT 언어 > Java' 카테고리의 다른 글

[Java] 반복문 문제 --*Q/A  (0) 2023.12.01
[Java] 랜덤 Math.radom() --*Q/A  (2) 2023.11.27
[Java] 입출력(I/O) --*Q/A  (0) 2023.11.24
[Java] 정수와 실수  (2) 2023.11.23
[Java] 자료형과 변수  (0) 2023.11.23

+ Recent posts