위에서 아래로 수행되는 프로그램의 흐름을 바꾸는 역할을 함
프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 조건에 따라 다른 문장이 수행되도록 함
if
문
if(조건식1) {
수행될 코드; // 조건식 1이 true일 때
} else if(조건식2) {
수행될 코드; // 조건식 2이 true일 때
} else if(조건식3) {
수행될 코드; // 조건식 3이 true일 때
} else {
수행될 코드; // 조건식 1,2,3이 모두 false일 때
}
switch
문
switch문
switch(조건식) {
case 조건식 결과1:
수행될 코드;
break;
case 조건식 결과2 :
수행될 코드;
break;
default:
수행될 코드;
}
⇒ switch
문을 리모콘에 비유 // 입력 값에 따라 지정된 채널로 이동
기본 형태
if(조건식) {
수행될 코드
}
조건식의 결과 값이 true
면 if문 내부 코드가 수행됨.
false
면 실행하지 않음
if문 예시
if(num > 0) {
System.out.println("양수입니다.");
}
if
~ else
if(조건식) {
true일 때 수행되는 코드
} else {
false일 때 수행되는 코드
}
조건식의 결과 값이 true
면 if 내의 코드가,
false
면 else 내의 코드가 수행됨
if(num % 2 == 0) {
System.out.println("짝수");
} else {
System.out.println("홀수");
}
public void example1() {
// if문
// - 조건식이 true일 때만 내부 코드 수행
/*
* [작성법]
* if(조건식){
* 조건식이 true일 때 수행될 코드
* }
*
* if - else문
* - 조건식 결과가 true면 if문,
* false면 else 구문이 수행됨
*
* [작성법]
* if(조건식) {
* 조건식이 true일 때 수행될 코드
* } else{
* 조건식이 false일 때 수행될 코드
* }
*
* */
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int input = sc.nextInt();
// 입력된 정수가 양수인지 검사
if(input > 0) {
System.out.println("양수 입니다.");
} else {
System.out.println("양수가 아닙니다.");
}
// if(input <= 0) {
// System.out.println("양수가 아닙니다.");
// }
}
public void example2() {
// 홀짝 검사
// 입력받은 값이 홀인지 짝인지 출력
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력해주세요: ");
int input = sc.nextInt();
if(input % 2 == 0) {
System.out.println("짝수");
} else {
System.out.println("홀수");
}
}
}
if
~ else if
~ else
if(조건식1) {
조건식1 true일 때 수행
} else if(조건식2){
조건식2 true일 때 수행
} else {
모두 false 일 때 수행
}
조건식1의 결과 값이 true
면 if
문 내 코드 수행
조건식2의 결과 값이 true
면 else if
내 코드 수행
모두 false
면 else
내 코드 수행
if
는 true
, false
와 상관 없이 조건절 실행,
if
~ else if
~ else
는 조건문이 true
면 이후 조건은 실행하지 않음
if(month == 1 || month == 2 || month == 12) {
season = "겨울";
} else if(month >= 3 && month <= 5) {
season = "봄";
} else if(month >= 6 && month <= 8) {
season = "여름";
} else if(month >= 9 && month <= 11) {
season = "가을";
} else {
season = "해당하는 계절이 없습니다.";
}
public void example3() {
// 달(month)를 입력받아 해당 달에 맞는 계절 출력
Scanner sc = new Scanner(System.in);
System.out.print("달 입력: ");
int month = sc.nextInt();
String season;
// 봄: 3,4,5
// 여름: 6,7,8
// 가을: 9,10,11
// 겨울: 12,1,2
if(month >= 3 && month <= 5) {
season = "봄";
} else if(month >= 6 && month <= 8) {
season = "여름";
} else if(month >= 9 && month <= 11) {
season = "가을";
} else if(month == 12 || month == 1 || month == 2) {
season = "겨울";
} else {
season = "해당하는 계절 없음";
}
System.out.println(season);
}
if (조건식1) {
if (조건식2) {
if (조건식3) {
수행될 코드;
} else if (조건식4) {
수행될 코드;
} else {
수행될 코드;
}
} else {
수행될 코드;
}
} else if (조건식5) {
수행될 코드;
} else {
수행될 코드;
}
if (month == 1 || month == 2 || month == 12) {
season = "겨울";
if(temperature <= -15) {
season += " 한파 경보";
} else if(temperature <= -12) {
season += " 한파 주의보";
}
} else if (month >= 3 && month <= 5) {
season = "봄";
} else if (month >= 6 && month <= 8) {
season = "여름";
if(temperature >= 35) {
season += " 폭염 경보";
} else if(temperature >= 33) {
season += " 폭염 주의보";
}
} else if (month >= 9 && month <= 11) {
season = "가을";
} else {
season = "해당하는 계절이 없습니다.";
}
→ switch
문을 사용하면 좀 더 간결하게 작성할 수 있음
if
문 실습public void example3() {
// 달(month)를 입력받아 해당 달에 맞는 계절 출력
Scanner sc = new Scanner(System.in);
System.out.print("달 입력: ");
int month = sc.nextInt();
// 사용자에게 온도를 받음
System.out.print("온도 입력: ");
int temperature = sc.nextInt();
String season;
// 봄: 3,4,5
// 여름: 6,7,8
// 가을: 9,10,11
// 겨울: 12,1,2
if(month >= 3 && month <= 5) {
season = "봄";
} else if(month >= 6 && month <= 8) {
season = "여름";
if(temperature >= 35) {
// season = season + "";
// season = "여름" + "폭염 경보"
season += " (폭염 경보)";
}else if(temperature >= 33) {
season += " (폭염 주의보)";
}
} else if(month >= 9 && month <= 11) {
season = "가을";
} else if(month == 12 || month == 1 || month == 2) {
season = "겨울";
} else {
season = "해당하는 계절 없음";
}
System.out.println(season);
}
}
실습 문제 1
public void example4() {
// 나이를 입력받아
// 13세 이하면 "어린이 입니다."
// 13세 초과 19세 이하면 : "청소년 입니다."
// 19세 초과 시 : "성인 입니다." 출력
Scanner sc = new Scanner(System.in);
System.out.print("나이를 입력해 주세요 : ");
int age = sc.nextInt();
String result;
if(age <= 13) {
result = "어린이 입니다.";
} else if( age > 13 && age <= 19) {
result = "청소년 입니다.";
} else if(age > 19) {
result = "성인 입니다.";
}
System.out.println("result");
}
실습 문제 2
public void example5() {
// 점수(100점 만점)을 입력 받아
// 90점 이상: A
// 80점 이상 90점 미만: B
// 70점 이상 80점 미만: C
// 60점 이상 70점 미만: D
// 60점 미만 : F
// 0점 미만, 100초과 : "잘못 입력하셨습니다"
Scanner sc = new Scanner(System.in);
System.out.print("점수를 입력해주세요: ");
int score = sc.nextInt();
String result;
if(score >= 90) {
result = "A";
}else if(score >= 80 && score < 90) {
result = "B";
}else if(score >= 70 && score < 80) {
result = "C";
}else if(score >= 60 && score < 70) {
result = "D";
}else if(score >= 0 && score < 60) {
result = "F";
}else if(score < 0 || score > 100) {
result = "잘못 입력하셨습니다";
}
System.out.println(result);
}
실습 문제 3
public void example6() {
// 놀이기구 탑승 제한 검사 프로그램
// 조건 - 나이 : 12세 이상
// - 키 : 140.0cm 이상
// 나이를 0~100세 사이로 입력하지 않은 경우 : "나이를 잘못 입력 하셨습니다."
// 키를 0~250.0cm 사이로 입력하지 않은 경우 : "키를 잘못 입력 하셨습니다."
// -> 입력이 되자 마자 검사를 진행하여 잘못된 경우 프로그램 종료
// 나이 O , 키 X : "나이는 적절하나, 키가 적절하지 않음";
// 나이 X , 키 O : "키는 적절하나, 나이는 적절하지 않음";
// 나이 X , 키 X : "나이와 키 모두 적절하지 않음";
// 나이 O , 키 O : "탑승 가능";
Scanner sc = new Scanner(System.in);
System.out.print("나이를 입력해주세요: ");
int age = sc.nextInt();
System.out.print("키를 입력해주세요: ");
double height = sc.nextDouble();
String result;
if(age < 0 || age > 100) {
result = "나이를 잘못 입력 하셨습니다.";
}else if(height < 0 || height > 250.0) {
result = "키를 잘못 입력 하셨습니다.";
}else {
if(age >= 12 && height < 140.0) {
result = "나이는 적절하나, 키가 적절하지 않음";
}else if(age < 12 && height >= 140.0) {
result = "키는 적절하나, 나이는 적절하지 않음";
}else if(age < 12 && height < 140.0) {
result = "나이와 키 모두 적절하지 않음";
}else if(age >= 12 && height >= 140.0) {
result = "탑승 가능";
}
}
System.out.println(result);
}
조건식 하나로 많은 경우의 수 처리할 때 사용하며
이때 조건식의 결과는 정수 또는 문자, 문자열
조건식의 결과 값과 일치하는 case
문으로 이동
default
문은 일치하는 case
문이 없을 때 수행(= else )
switch(num % 5) {
case 1:
team = "1조"; break;
case 2:
team = "2조"; break;
case 3:
team = "3조"; break;
case 4:
team = "4조"; break;
default:
team = "다시";
}
프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 특정 문장들을 반복해서 수행하도록 함
for
문
for(초기식; 조건식; 증감식) {
수행될 코드;
}
while
문
while(조건식) {
수행될 코드;
[증감식 or 분기문];
}
바닐라 라떼 (커피사피엔스 역삼푸르지오점)
생각보다 다른 수강생분들이 점심을 패스하는 것 같아서 오늘은 라떼 한 잔으로 해결함
좀 허기지긴 하는데, 오후 강의 시간 2시간만 더 듣고나면 집에 가니까 버틸만 하긴 함