부호 연산자
- 숫자를 나타내는 기초 타입에 사용하며, 피연산자의 부호를 그대로 유지하거나 반전
증감 연산자
- 증감연산자는 변수의 위치에 따라 의미가 다르다
++ : 증가 - ++x 연산 전 x 값 증가 (전위 증가)
- \x++ 연산 후 x 값 증가 (후위 증가)
-- : 감소 - --x 연산 전 x 값 감소 (전위 감소)
- \x-- 연산 후 x 값 감소 (후위 감소)
조건 연산자
- 조건식이 true면 결과값은 연산식1의 값이 되고, false면 연산식2의 값이 된다
조건식 ? 연산식1 : 연산식2
package sec06;
import java.util.Scanner;
public class Practice2_8 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("전공 이수 학점 : ");
int m = in.nextInt();
System.out.print("전공 이수 학점 : ");
int l = in.nextInt();
System.out.print("전공 이수 학점 : ");
int g = in.nextInt();
boolean b = ((m + l + g) >= 140) && (m >= 70) && ((l >= 30 && g >= 30) || l + g >= 80);
System.out.println(b ? "졸업가능" : "졸업 불가");
}
}
제어문
필요성?
순차적 수행이 비효율적일 수 있으므로종류
- 조건문
- 반복문
- 분기문
조건문
조건에 따라 실행문을 선택을 할 때 사용
단순 if 문
조건식이 true 일 때만 실행문을 수행
조건식에는 true, false를 산출할 수 있는 연신식 논리값 변수가 올 수 있음.
조건식이 true일 때 수행할 실행문이 하나라면 {}생략 가능
if ~ else 문
조건식의 true false에 따라 다른 실행문을 수행할 때 사용
단순 if문의 비효율성을 제거
practice 3_1
package sec06;
import java.util.Scanner;
public class Practice3_1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("숫자를 입력하세요 : ");
int number = in.nextInt();
if (number >= 19)
System.out.println("성년");
else
System.out.println("미성년");
}
}
Practice 3_2
package sec06;
import java.util.Scanner;
public class Practice3_2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("5자리 숫자를 입력하세요 : ");
int number = in.nextInt();
int even = 0, odd = 0;
int num_1 = number % 10; // 1의자리
int num_2 = (number / 10) % 10; // 10의자리
int num_3 = (number / 100) % 10; // 100의자리
int num_4 = (number / 1000) % 10; // 1000의자리
int num_5 = (number / 10000) % 10; // 10000의자리
if (num_1 % 2 == 0)
even++;
else
odd++;
if (num_2 % 2 == 0)
even++;
else
odd++;
if (num_3 % 2 == 0)
even++;
else
odd++;
if (num_4 % 2 == 0)
even++;
else
odd++;
if (num_5 % 2 == 0)
even++;
else
odd++;
System.out.println(" 1의자리 : " + num_1);
System.out.println(" 10의자리 : " + num_2);
System.out.println(" 100의자리 : " + num_3);
System.out.println(" 1000의자리 : " + num_4);
System.out.println("10000의자리 : " + num_5);
System.out.println("짝수의 개수 : " + even);
System.out.println("홀수의 개수 : " + odd);
}
}
조건문
다중 if 문
- 조건식이 다양할 때 사용
- if문 다음에 else if 문을 연속 추가해 각 조건을 차례대로 점검한 후 만족하는 실행문을 수행
중첩 if 문
- if 문에 다른 if문이 포함되는 것을 중첩 if문이라고 한다.
- 주의사항 : {}로 if문의 시작과 끝을 명확하게 잘 나누어줘야함
반복문
조건에 따라 같은 처리를 반복
while 문
- 반복할 조건을 알 때 (종이 한장을 다 채울 때까지 반복해 쓰기)
- 조건식이 true일 동안 본체 실행문을 반복적으로 수행
- while (false) {} : 얘는 오류가 남 실행이 안돼서
for 문
- 반복 횟수를 알 때 (100번 반복해 쓴다)
Practice 3_2
package sec06;
import java.util.Scanner;
public class Practice3_2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("5자리 숫자를 입력하세요 : ");
int number = in.nextInt();
int even = 0, odd = 0;
int num_1 = number % 10; // 1의자리
int num_2 = (number / 10) % 10; // 10의자리
int num_3 = (number / 100) % 10; // 100의자리
int num_4 = (number / 1000) % 10; // 1000의자리
int num_5 = (number / 10000) % 10; // 10000의자리
if (num_1 % 2 == 0)
even++;
else
odd++;
if (num_2 % 2 == 0)
even++;
else
odd++;
if (num_3 % 2 == 0)
even++;
else
odd++;
if (num_4 % 2 == 0)
even++;
else
odd++;
if (num_5 % 2 == 0)
even++;
else
odd++;
System.out.println(" 1의자리 : " + num_1);
System.out.println(" 10의자리 : " + num_2);
System.out.println(" 100의자리 : " + num_3);
System.out.println(" 1000의자리 : " + num_4);
System.out.println("10000의자리 : " + num_5);
System.out.println("짝수의 개수 : " + even);
System.out.println("홀수의 개수 : " + odd);
}
}
실행 결과
5자리 숫자를 입력하세요 : 12345
1의자리 : 5
10의자리 : 4
100의자리 : 3
1000의자리 : 2
10000의자리 : 1
짝수의 개수 : 2
홀수의 개수 : 3
Practice 3_3
package sec06;
import java.util.Scanner;
public class Practice3_3 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int row = 2;
while (row < 10) {
int column = 1;
System.out.println(row + "단 출력");
while (column < 10) {
System.out.printf("%d * %d = %2d\n", row, column, row * column);
// System.out.print(row + " * " + column + " = " + row * column); 처음 한 것
column++;
}
System.out.println();
row++;
}
}
}
실행결과
2단출력
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단출력
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,5,6단 출력 다있음)
9단출력
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
'TIL > [객체지향 프로그래밍] TIL' 카테고리의 다른 글
TIL (22.04.06) (0) | 2022.04.06 |
---|---|
TIL (22.04.01) (0) | 2022.04.01 |
TIL (22.03.23) (0) | 2022.03.23 |
TIL (22.03.18) (0) | 2022.03.18 |
TIL 1 (22.03.11) (0) | 2022.03.11 |