반응형
조건문
말 그대로 코드 실행에 대해 조건을 추가하여
각 조건에 해당하는 각 코드 실행을 시키는 명령 기능을 가진 제어문이다.
조건문 if
" 만약(if) 조건식이 참(true)이면 괄호({}) 안의 문장들을 수행해라 "
if (조건식) {
// 조건식이 참일 경우 수행될 코드 작성
}
괄호는{} 탭(Tab)을 통한 들여쓰기로
내부에 묶어둔 문장들을 조금 더 가독성 좋게 해주는 것이 좋다.
-> 단축키 ctrl + shift + F
(ctrl + A)+(ctrl + I)
조건문 if 활용 문제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package class04;
import java.util.Scanner;
public class Test71 {
public static void main(String[] args) {
// 문제 : 정수2개를 입력하여 약수인지 아닌지 확인하기 (교환알고리즘사용)
Scanner sc = new Scanner(System.in);
System.out.print("정수1 : ");
int num1 = sc.nextInt();
System.out.print("정수2 : ");
int num2 = sc.nextInt();
//교환 알고리즘을 사용하여 num1값이 항상 작은수로 만들어주기
if (num1>num2) {
int tmp = num1;
num1=num2;
num2=tmp;
}// num1값이 항상 작은 경우
if (num2%num1==0) { //약수의 의미는 큰수에서 작은수를 나눴을때 나머지가 0
System.out.println(num1 + "는"+ num2 + "의 약수입니다" );
}
}
}
|
cs |
** 교환 알고리즘
if (num1>num2) {
int tmp = num1;
num1=num2;
num2=tmp;
교환 알고리즘을 이해하기 위해 num1 = 10, num2 = 5 값을 가정하여
디버깅표를 그려보게되면 하기와 같이 나타난다.
중요한 알고리즘이기 때문에 꼭 기억해두자!
if문 활용 시간차 계산 문제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package class01;
import java.util.Scanner;
public class Test01_1 {
public static void main(String[] args) {
//문제 : 시간과 분을 입력했을떄 1시간20분전 시간이 나오게하라.
// 조건 : 시간은 1~12시
// 분은 0~59분
// 잘못된 입력 -> 종료
//입력
Scanner sc = new Scanner(System.in);
System.out.print("시 : ");
int hour = sc.nextInt();
System.out.print("분 : ");
int min = sc.nextInt();
if (1>hour || 12 < hour || 0>min || 59<hour) { //유효성을 체크!
System.out.println("시간범위 : 1~12 ");
System.out.println("분범위 : 0~59");
}else {
System.out.println(hour + "시" + min + "분의 1시간 20분전 시간은 ");
hour--;
min-=20;
if (min<0) {
min+=60;
hour--;
}if (hour<1) {
hour+=12;
}
System.out.println("1시간 20분전 시간은" + hour+"시"+min+"분 입니다.");
}
}
}
|
cs |
조건문 Switch
( if문과 달리 )
단 하나의 조건식으로 많은 경우의 수를 처리할 수 있고,표현도 간결해서 알아보기 쉽다.
▶ 처리할 경우의 수가 많을 때 적합! 단, 제약조건 주의해야 한다.
switch (조건식) {
case 값1 :
// 조건식의 결과가 [값1]과 같을 경우 수행
break // switch문 벗어나기
case 값2 :
// 조건식의 결과가 [값2]와 같은 경우 수행
break ... ... default : //조건식 결과와 일치하는 case 없을 경우 수행될 문자
//...
}
《계산 순서》
① 1차적으로 switch문의 조건식
②【결과와 일치하는 case문으로 이동】
③ 이동한 case문 내부 문장 수행
④【break문 / switch문 종류의 단계 도달】
⑤종료
위 순서 중 ②번 부분을 보면 switch문의 조건식 결과와 일치하는 case로 간다고 작성되어있는데
만약 일치하는 case가 없을 경우 default문으로 이동한다.
또 중요한 것 한가지는 switch문에서 break문은 각 case의 영역을 구분하는 역할
각 case문 끝에 break문 (break;)을 빼먹어서는 안된다.
《제약 조건》
- 조건식의 결과값은 무조건 정수/문자열이어야 한다.
- case문의 값 역시 상수 (정수/문자)/문자열만 사용하여야 한다. (변수나 실수 X)
- 중복되지 않아야 한다.
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 배열 최대값, 최소값 구하기 알고리즘 (0) | 2022.06.14 |
---|---|
[JAVA] 재귀함수 - Stack overflow 오류 (0) | 2022.06.14 |
[JAVA] 입력 Scanner (0) | 2022.06.13 |
[JAVA] 연산자의 종류와 우선순위 (0) | 2022.06.09 |
[JAVA] 변수 (개념, 데이터타입, 형변환) (0) | 2022.06.09 |