제어문
- 코드의 흐름을 제어하는 문장
- 코드의 일정부분을 선택하여 실행하거나 반복하여 실행하는 문장
- 종류
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 |