● 복합 대입 연산자
(ex) num += 3; → num = num + 3;
(ex) num -= i; → num = num - i;
(ex) num *= 2; → num = num * 2;
(ex) num /= 3; → num = num / 3;
(ex) num %= 3; → num = num % 3;
● 증감연산자
1. 후위형
- 우선순위가 낮다.
(ex) num++; → num += 1; → num = num + 1;
(ex) num--; → num -= 1; → num = num - 1;
2. 전위형
- 우선순위가 높다.
(ex) ++num;
(ex) --num;
● 중첩문
1. 다중 for문(= 중첩 for문 : nested for)
2. 이중 for문
- for문 안에 for문이 있는 형태
● continue
- 즉시 다음 반복으로 이동한다.
- 중첩 for문에서 continue가 사용되면, 자기 자신을 감싸고 있는 가장 가까운 for문의 다음 반복으로 이동한다.
실습(증감연산자)
public class IncrementDecrementOp {
public static void main(String[] args) {
int num = 10;
// 대입연산자가 먼저 실행되고, 그 뒤 증감연산자(후위형)가 실행된다.
System.out.println(num++); //아직 증가하지 않았기 때문에 num의 값은 10이다.
// 여기서부터 num++가 적용되어 num의 값은 11이 된다.
System.out.println(num);
// 증감연산자(전위형)가 먼저 실행되고, 그 다음에 println()이 실행된다.
System.out.println(++num); //바로 증가하여 num의 값은 12이다.
}
}
![](https://blog.kakaocdn.net/dn/EKzoR/btrpaIOT4ZO/EcK3dVbFSYtt2YnIxXkKz0/img.png)
실습(중첩문(1))
1. 0~33 사이의 숫자 중 짝수만 출력하기
public class NestedFor {
public static void main(String[] args) {
for(int i = 0; i < 34; i++) {
if(i % 2 == 0) {
System.out.println(i);
}
}
}
}
![](https://blog.kakaocdn.net/dn/blveTK/btro6aSVxjQ/c0Oke930k7OlK4Ysb9B9bk/img.png)
※ continue 사용
public class NestedFor {
public static void main(String[] args) {
for(int i = 0; i < 34; i++) {
if(i % 2 != 0) {
continue; //즉시 다음 반복으로 이동
// System.out.println("안녕"); // continue 아래의 코드는 실행되지 않는다.(dead code)
}
System.out.println(i);
}
}
}
![](https://blog.kakaocdn.net/dn/bcVp4j/btro32niTbd/D7YX1yTACwEgzPOubTxi9K/img.png)
2.이중 for문 예시
public class NestedFor {
public static void main(String[] args) {
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 5; j++) {
System.out.println("i : " + i + " j : " + j);
}
}
}
}
![](https://blog.kakaocdn.net/dn/clP55W/btrpffLQORI/TdMBAE4i4cvSARw1csvMF1/img.png)
실습(중첩문(2))
1. 아래 이미지처럼 출력하기
public class NestedForTask {
public static void main(String[] args) {
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
![](https://blog.kakaocdn.net/dn/k95KN/btro6JAGbbX/Z0iG6vBgqdk65odQON82fk/img.png)
2. 아래 이미지처럼 출력하기
public class NestedForTask {
public static void main(String[] args) {
for(int i = 0; i < 5; i++) {
for(int j = 0; j < i+1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
![](https://blog.kakaocdn.net/dn/C9EUk/btroYjXbm5B/Y5ZuRCvZ7cv0QI1QKLke60/img.png)
3. 아래 이미지처럼 출력하기
- for문 및 if문을 중첩하여 작성
public class NestedForTask {
public static void main(String[] args) {
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if(j < 4 - i) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
}
}
![](https://blog.kakaocdn.net/dn/bm1y1N/btro12uk87P/AZtii7RctVb6Wt3EOtLhAK/img.png)
- for문 1개만 이용하여 작성
public class NestedForTask {
public static void main(String[] args) {
String star = "*";
for(int i = 0; i < 5; i++) {
System.out.printf("%5s\n", star);
star += "*"; //star = star + "*"
}
}
}
![](https://blog.kakaocdn.net/dn/bLrSgz/btro6bEgqAr/ibyAmTtuUeOHQe5ZZMheB0/img.png)
4. 구구단을 2단부터 4단까지 출력하기
public class NestedForTask {
public static void main(String[] args) {
for(int i = 2; i < 5; i++) {
for(int j = 1; j < 10; j++) {
System.out.println(i + " X " + j + " = " + (i * j));
}
}
}
}
![](https://blog.kakaocdn.net/dn/3pcMj/btrpdoCnTgL/izfGfASGvBDjz7cGvxTad1/img.png)