* continue / break + 라벨
- continue : 가까운 반복문 실행하지 않고 다음으로 넘김(남아 있는 것 실행)
- break : 가까운 반복문 탈출(몇 번 남아있던지 상관 없이 탈출)
- break 라벨 : 라벨명이 부여된 문장을 탈출
- continue 라벨 : 라벨명이 부여된 문장에서 이번만 넘김
|
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
|
package day04;
// continue : 가까운 반복문 실행하지 않고 다음으로 넘김(남아 있는 것 실행)
// break : 가까운 반복문 탈출(몇 번 남아있던지 상관 없이 탈출)
// break 라벨 : 라벨명이 부여된 문장을 탈출
// continue 라벨 : 라벨명이 부여된 문장에서 이번만 넘김
public class StatementTest24 {
public static void main(String[] args) {
outer : // 라벨을 줌
for(int j=1; j<=3; j++) {
System.out.println(j + " 회차 반복");
for(int i = 1; i <= 4; i++) {
if ( i == j ) {
continue outer;
// if (i > j) break outer; // 라벨 부분을 break
// if ( i > j ) break;
// if (i == j) continue;
}
System.out.println("j : " + j + " , i : " + i );
// 더블클릭으로 토글 만들고 f11 누르면 디버그 모드
// 플레이 버튼 누르면 한단계씩 진행됨(Variables창으로 확인)
}
}
}
}
|
cs |
| * 디버그 모드 - 더블클릭으로 토글 만들고 f11 누르면 디버그 모드 > 플레이 버튼 누르면 한단계씩 진행됨(Variables창으로 확인) |
[ 배열 ]
* 배열 : apt형 변수
- 동일한 사이즈에 연속된 공간에 할당되는 변수
-변수의 타입 중 'reference type'에 'array'가 속함
- 자료형[] 변수명;
- 자료형 변수명[];
|
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
package day04;
// 배열 : apt형 변수
// 동일한 사이즈에 연속된 공간에 할당되는 변수
// primitive type
// reference type
// array
public class ArrayEx01 {
public static void main(String[] args) {
// 자료형 변수명;
int a = 10;
// stack에 m이라는 공간이 할당됨
// 그 공간에 10이라는 값이 저장
// 자료형[] 변수명;
// 자료형 변수명[];
int[] m; // 32평 apt
// int m[];
// 선언하면 stack에 m이라는 공간이 할당됨
m = new int[3];
// heap이라는 영역에 새롭게 int 크기로 세 칸의 연속된 공간의 변수를 만듦
// 실제 할당되는 메모리 주소(참조값) -> stack의 'm'에 할당됨
// 아래부터 m[0], m[1], m[2]
System.out.println("a : " + a);
System.out.println("m : " + m);
System.out.println("m[0] : " + m[0]);
System.out.println("m[1] : " + m[1]);
System.out.println("m[2] : " + m[2]);
System.out.println("--------------------------");
// 처음에는 기본값이 들어 있음
// 이때 기본값이란 해당 자료형의 값을 0으로 하는 값
// 즉 int 배열 0, float 배열 0.0f, boolean false
m[1] = 500;
System.out.println("m[0] : " + m[0]);
System.out.println("m[1] : " + m[1]);
System.out.println("m[2] : " + m[2]);
System.out.println("--------------------------");
// float 타입 배열 f를 선언하고
float [] f;
// 3개의 float 변수를 갖는다.
f = new float [3];
// 0, 1, 2 <= 2번 180.0f를 대입
f[2] = 180.0f;
// 화면에 출력
System.out.println("f[0] : " + f[0]);
System.out.println("f[1] : " + f[1]);
System.out.println("f[2] : " + f[2]);
System.out.println("--------------------------");
// m[0] = 10;
// m[1] = 20;
// m[2] = 30;
for (int i = 0; i<3; i++) {
m[i] = (i+1)*10;
System.out.println("m[" + i+"] : " + m[i]);
}
System.out.println("--------------------------");
System.out.println("m[0] : " + m[0]);
System.out.println("m[1] : " + m[1]);
System.out.println("m[2] : " + m[2]);
}
}
|
cs |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package day04;
public class ArrayEx02 {
public static void main(String[] args) {
// int 타입 배열 5칸 짜리 c 배열
int[] c; // int c[];
// System.out.println("c : " + c); // error : 초기화 안해서
// 5개의 배열 요소를 갖도록 하자.
c = new int[5];
// 자료형의 기본값 : 0으로
// boolean : false
// String : null
// float : 0.0f
// double : 0.0d
System.out.println("c[4] : " + c[4]);
}
}
|
cs |
[ 실습 ]
* 3의 배수 중 15개만 구해서 누적합 구하기 > for 문 / if 문 / count / break
|
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
|
package day04;
public class StatementTest23 {
public static void main(String[] args) {
// 1. 1부터 1000까지 누적합
int sum = 0;
int count = 0;
for (int i = 1; i <= 1000; i++) {
// 2. 3의 배수만 가지고 누적합
if (i%3 == 0) {
count++;
sum += i;
System.out.println(count + " , 누적합 : " + sum);
// 3. 3의 배수 중 15개만 구해서 누적합
//만약 카운트값이 15가 되면 탈출
if(count==15) {
break;
}
}
}
}
}
|
cs |
[ 응용 ]
1. 변수 x가 10보다 크고 20보다 작을 때 변수 x를 출력하는 코드를 작성하시오
package day04;
public class Day04Q01 {
public static void main(String[] args) {
for (int i = 1; i < 20; i++) {
if ( i > 10) {
System.out.println(i);
}
}
}
}
2. for문을 사용하여 0부터 10미만의 정수 중에서 짝수만을 작은 수부터 출력하시오.
package day04;
public class Day04Q02 {
public static void main(String[] args) {
for(int i = 0; i < 10; i++) {
if (i%2 == 0) {
System.out.println(i);
}
}
}
}
3. for문을 사용하여 0부터 10미만의 정수 중에서 짝수만을 작은 수부터 옆으로 출력하세요
package day04;
public class Day04Q03 {
public static void main(String[] args) {
for(int i = 0; i < 10; i++) {
if (i%2 == 0) {
System.out.print(i);
}
}
}
}
4. for문을 사용하여 0부터 10미만의 정수 중에서 홀수만을 큰수부터 출력하시오.
package day04;
public class Day04Q04 {
public static void main(String[] args) {
for(int i = 10; i >= 0; i--) {
if (i%2 == 1) {
System.out.println(i);
}
}
}
}
5. while문을 사용하여 0 부터 10 미만의 정수 중에서 짝수만을 작은 수부터 출력하시오.
package day04;
public class Day04Q05 {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
if (i%2 == 0) {
System.out.println(i);
}
i++;
}
}
}
6. while문을 사용하여 0 부터 10 미만의 정수 중에서 홀수만을 큰수부터 출력하시오.
package day04;
public class Day04Q06 {
public static void main(String[] args) {
int i = 10;
while (i >= 1) {
if (i%2 == 1) {
System.out.println(i);
}
i--;
}
}
}
7. for 문을 사용하여 0부터 10미만의 정수의 합을 출력하시오.
package day04;
public class Day04Q07 {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i < 10; i++) {
sum += i;
}
System.out.println(sum);
}
}
8. 1부터 20 미만의 정수 중에서 2 또는 3의 배수가 아닌 수의 총합을 구하시오.
package day04;
public class Day04Q08 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i < 20; i++) {
if (i%2 != 0 && i%3 != 0) {
sum += i;
}
}
System.out.println(sum);
}
}
9. 1부터 20 미만의 정수 중에서 2 또는 3의 배수인 수의 총합을 구하시오.
package day04;
public class Day04Q09 {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i < 20; i++) {
if (i%2 == 0 && i%3 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
10. 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하시오.
package day04;
public class Day04Q10 {
public static void main(String[] args) {
for(int j = 1; j <= 6; j++) {
for (int i = 1; i <= 6; i++) {
if (i+j == 6) {
System.out.println("첫번째 주사위 : " + i + " , 두번째 주사위 : " + j);
}
}
}
}
}
11. 정수 한 개를 입력받아서, 그 수가 50 이상의 수인지 50미만의 수인지 판단해보자.
package day04;
import java.util.Scanner;
public class Day04Q11 {
public static void main(String[] args) {
System.out.println("입력 : ");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
if (i < 50) {
System.out.println(i+"은 50 미만 입니다.");
} else {
System.out.println(i+"은 50 이상 입니다.");
}
}
}
12. 정수 한 개를 입력받아서, 그 수가 3의 배수인지 출력하세오
package day04;
import java.util.Scanner;
public class Day04Q12 {
public static void main(String[] args) {
System.out.println("입력 : ");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
if (i%3 == 0) {
System.out.println(i+"은 3의 배수 입니다.");
} else {
System.out.println(i+"은 3의 배수가 아닙니다.");
}
}
}
13. 초등학교에서 1학년부터 4학년까지 중간고사 시험을 보았다.
4학년은 70점 이상이면 합격, 그 이외의 학년은 60점 이상이면 합격이다. 이를 판단하는 프로그램을 작성해보자.
점수가 0미만 100초과이면 경고문구 출력!
학년:1
점수:120
점수 범위 초과
--------------------------
학년: 1
점수: 50
불합격
--------------------------
학년:2
점수:90
합격
--------------------------
학년:4
점수: 65
불합격
package day04;
import java.util.Scanner;
public class Day04Q13 {
public static void main(String[] args) {
// 스캐너 객체를 생성
Scanner sc = new Scanner(System.in);
int grade = 0;
int score = 0;
System.out.println("학년 : ");
grade = sc.nextInt();
System.out.println("점수 : ");
score = sc.nextInt();
System.out.println("학년 : " + grade);
System.out.println("점수 : " + score);
if(score >= 0 && score < 100 ) {
if(grade <= 3 && score >= 60) {
System.out.println("합격");
} else if (grade == 4 && score >= 70) {
System.out.println("합격");
} else {
System.out.println("불합격");
}
} else {
// 점수 범위 초과
System.out.println("점수 범위 초과");
}
System.out.println("-------------------------");
}
}
14. 사용자로부터 3 개의 정수를 입력받아, 그 수들의 최대값과 최소값, 합계와 평균을 구해보자.
package day04;
import java.util.Scanner;
public class Day04Q14 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("세 개의 수 입력 : ");;
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int max = 0;
int min = 0;
if (a >= b) {
// a가 더 큰 경우
if (a >= c) {
// a가 제일 큰 경우
max = a;
} else {
max = c;
}
}else {
// b가 더 큰 경우
if (b >= c) {
max = b;
} else {
max = c;
}
}
if (a >= b) {
// b가 더 작은 경우
if(b >= c) {
min = c;
} else {
min = b;
}
}else {
// a가 더 작은 경우
if( a>= c) {
min = c;
} else {
min = a;
}
}
System.out.println("최대값 : " + max);
System.out.println("최소값 : " + min);
int tot = a + b + c;
float avg = tot/3.0f;
System.out.println("총합 : " + tot);
System.out.println("평균 : " + avg);
} // main method end
} // class end
15. 정수 한 개를 입력받아, 입력받은 수가 양수, 0, 음수인지 판단해보자.
package day04;
import java.util.Scanner;
public class Day04Q15 {
public static void main(String[] args) {
System.out.println("입력 : ");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
if (i == 0) {
System.out.println(i + "은 0 입니다.");
} else if (i > 0) {
System.out.println(i + "은 양수 입니다.");
} else {
System.out.println(i + "은 음수 입니다.");
}
}
}
16. 사용자로부터 키를 입력받는다. 입력받은 키가
1) 150 이상이면, 놀이기구 이용 가능
2) 150 미만이면, 부모와 함께 왔는지 한 번 더 묻는다.
함께 왔다면 1번을 입력받고, 혼자 왔다면 0번 입력받는다.
1번 입력: 좋은 시간 보내렴~
0번 입력: 어른 모시고 다시 오렴~
package day04;
import java.util.Scanner;
public class Day04Q16 {
public static void main(String[] args) {
System.out.println("키를 입력하시오 : ");
Scanner sc = new Scanner(System.in);
int height = sc.nextInt();
if (height >= 150) {
System.out.println("좋은 시간 보내렴~");
} else if (height < 150) {
System.out.println("부모님과 함께 왔습니까? (1번: 예 / 2번 : 아니오)");
Scanner sc2 = new Scanner(System.in);
int i = sc2.nextInt();
if (i == 1) {
System.out.println("좋은 시간 보내렴~");
} else {
System.out.println("어른 모시고 다시 오렴~");
}
}
}
}