문법)
switch(변수명){
case 상수 : 변수가 상수와 일치했을 때 수행 문장들
case 상수 : 변수가 상수와 일치했을 때 수행 문장들
default : 변수가 일치하는 상수가 없었을 때 수행될 문장들
}
package day0104;
public class TestSwitchCase {
public static final int GRADE_A_PLUS = 10;
public static final int GRADE_A = 9;
public static final int GRADE_B = 8;
public static final int GRADE_C = 7;
public static final int GRADE_D = 6;
public static void main(String[] args) {
int i = 0;
switch (i) {
case 0:
System.out.println("영");
break;
case 1:
System.out.println("일");
break;
case 2:
System.out.println("이");
break;
case 3:
System.out.println("삼");
break;
default:
System.out.println("변수와 일치하는 상수 없음");
break;
}
//점수에 대한 학점 구하기 => 범위에 대한 값(if가 더 적절)
// a = 90~100 score/10 100 => 10
// b = 80~89 90~99 => 9
// c = 70~79 80~89 => 8
// d = 60~69 70~79 => 7
// f = 0~59 60~69 => 6
int score = 97;
char grade = '\u0000';//정수 / 정수 = 정수
switch (score/10) {
case GRADE_A_PLUS:
break;
case GRADE_A:
grade = 'A';
break;
case GRADE_B:
grade = 'B';
break;
case GRADE_C:
grade = 'C';
break;
case GRADE_D:
grade = 'D';
break;
default:
grade = 'F';
break;
}//end switch
System.out.println("---------------------------------------------------");
score = 90;
char grade = 64; // 대문자(65-90), 소문자(97-122), 숫자(48-57(0~9))
switch (score / 10) {
case GRADE_D:
grade++; // grade 64->65
case GRADE_C:
grade++;// grade 65->66
case GRADE_B:
grade++;// grade 66->67
case GRADE_A:
case GRADE_A_PLUS:
grade++;
break;// grade 67->68 => char D = 68; 60점의 학점은 D
default:
grade += 6;// char 70 = F
break;
}
System.out.println(score + "점의 학점은 " + grade);
//출력
//90점의 학점은 A
score = 110;
grade = 64;
if (score > -1 && score < 101) {
switch (score / 10) {
case GRADE_D:
grade++; // grade 64->65
case GRADE_C:
grade++;// grade 65->66
case GRADE_B:
grade++;// grade 66->67
case GRADE_A:
case GRADE_A_PLUS:
grade++;
break;// grade 67->68 => char D = 68; 60점의 학점은 D
default:
grade += 6;
break;
}// end switch
System.out.println(score + "점의 학점은 " + grade);
} else {
System.out.println(score + "점은 잘못된 점수입니다.");
} // end else
//출력
//110점은 잘못된 점수입니다.
}// main
}// class
문법)
for(시작값 ; 조건식(끝값) ; 증*감소식){
반복수행될 문장들;
}
package day0104;
public class TestFor {
public static void main(String[] args) {
// 안녕하세요를 10번 출력하는 코드 작성.
for (int i = 0; i < 10; i++) {
System.out.println(i + "번째 안녕하세요");
} // end for
출력
0번째 안녕하세요
1번째 안녕하세요
2번째 안녕하세요
3번째 안녕하세요
4번째 안녕하세요
5번째 안녕하세요
6번째 안녕하세요
7번째 안녕하세요
8번째 안녕하세요
9번째 안녕하세요
for (int i = 1; i < 101; i++) {
System.out.print(i + " ");
} // end for
출력
1 2 3 4 5 6 7 8 9 10 11 12 13...92 93 94 95 96 97 98 99 100
int cnt = 0;
// 증감식은 대상체의 값을 변화시키고 저장할 수 있는 모든 연산자를 사용할 수 있다.
for (int i = 1; i < 101; i++) {// i++, i=i+1, i+=1
cnt++;
if (i % 2 != 0) {
System.out.print(i + " ");
} // end if
} // end for
System.out.println("\n" + cnt + "번");
// 증감소식을 i+=2 이렇게 작성하면 if 없이 홀수만 출력 가능.
for (int i = 1; i < 101; i += 2) {// i++, i=i+1, i+=1
System.out.print(i + " ");
} // end for
출력
1 3 5 7 9 11 13 15 17 19 21 23...85 87 89 91 93 95 97 99
100번
1 3 5 7 9 11 13 15 17 19...85 87 89 91 93 95 97 99
for (int i = 100; i > 0; i--) {
System.out.print(i + " ");
} // end for
출력
100 99 98 97 96 95 94 93 92 91 90 89 88...13 12 11 10 9 8 7 6 5 4 3 2 1
int j = Integer.parseInt(args[0]);// Integer.parseInt() : 인수로 받은 문자열"숫자"를 숫자로 바꿔주는 메소드
for (int i = 0; i < 10; i++) {
System.out.println(j + " * " + i + " = " + j * i);
} // end for
출력
6 * 0 = 0
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
int sum = 0;
for (int i = 1; i < 101; i++) {
sum += i;
} // end for
System.out.println("1부터 100까지의 합은 " + sum);
}// main
}// class
출력
1부터 100까지의 합은 5050
문법)
for (초기값;조건식;증감소식){
반복수행문장//단인 for의 영역
for (초기값;조건식;증감소식){
반복수행문장 //다중 for의 영역
}
반복 수행 문장//단일 for의 영역
}
package day0104;
public class TestFor2 {
public static void main(String[] args) {
// 다중 for의 동작 : 바깥 for가 한번 반복할 때, 안쪽 for는 몇 번 반복하는가?
for (int i = 0; i < 5; i++) {// 5번 반복
for (int j = 0; j < 3; j++) {// 3번 반복
System.out.println("i: " + i + " j: " + j);
} // end for
System.out.println("---------------------------------------------");
} // end for
출력
i: 0 j: 0
i: 0 j: 1
i: 0 j: 2
---------------------------------------------
i: 1 j: 0
i: 1 j: 1
i: 1 j: 2
---------------------------------------------
i: 2 j: 0
i: 2 j: 1
i: 2 j: 2
---------------------------------------------
i: 3 j: 0
i: 3 j: 1
i: 3 j: 2
---------------------------------------------
i: 4 j: 0
i: 4 j: 1
i: 4 j: 2
---------------------------------------------
* 구구단
```java
for (int i = 1; i < 10; i++) {
System.out.println(i + "단 입니다.");
for (int j = 1; j < 10; j++) {
System.out.println(i + " X " + j + " = " + i * j);
} // end for
System.out.println("---------------------------------------------");
} // end for
출력
1단 입니다.
1 X 1 = 1
1 X 2 = 2
1 X 3 = 3
1 X 4 = 4
1 X 5 = 5
1 X 6 = 6
1 X 7 = 7
1 X 8 = 8
1 X 9 = 9
---------------------------------------------
2단 입니다.
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
---------------------------------------------
.
.
.
---------------------------------------------
8단 입니다.
8 X 1 = 8
8 X 2 = 16
8 X 3 = 24
8 X 4 = 32
8 X 5 = 40
8 X 6 = 48
8 X 7 = 56
8 X 8 = 64
8 X 9 = 72
---------------------------------------------
9단 입니다.
9 X 1 = 9
9 X 2 = 18
9 X 3 = 27
9 X 4 = 36
9 X 5 = 45
9 X 6 = 54
9 X 7 = 63
9 X 8 = 72
9 X 9 = 81
---------------------------------------------
// 안쪽 for가 0에서부터 바깥for의 현재 번째까지 반복
for (int i = 0; i < 3; i++) {
for (int j = 0; j < i + 1; j++) {
System.out.print(i + " " + j + " ");
} // end for
System.out.println();
} // end for
System.out.println("---------------------------------------------");
// 안쪽 for의 시작이 바깥 for의 현재보다 1큰 지점에서 5까지 반복
for (int i = 0; i < 5; i++) {
for (int j = i + 1; j < 6; j++) {
System.out.print(i + " " + j + " ");
} // end for
System.out.println();
} // end for
System.out.println("---------------------------------------------");
int k = 1;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < i + 1; j++) {
System.out.print(k++ + " ");
} // end for
System.out.println();
} // end for
}// main
}// class
출력
---------------------------------------------
0 0
1 0 1 1
2 0 2 1 2 2
---------------------------------------------
0 1 0 2 0 3 0 4 0 5
1 2 1 3 1 4 1 5
2 3 2 4 2 5
3 4 3 5
4 5
---------------------------------------------
1
2 3
4 5 6
7 8 9 10
//증가하는 수를 세는 무한루프
for (초기값; ; 중감소식){
}
//증가하는 수를 세지 않는 무한루프
for (; ;){
}
public static void main(String[] args) {
for(int i=0; ; i++) {
System.out.println(i);
}
//System.out.println("무한루프"); 무한루프 아래에 있는 문장은 실행될 수 없다.
//무한루프는 증가하는 수를 세지 않는다.
for (; ; ) {
System.out.println("무한루프");
}
//여러개의 초기값을 선언할 수 있다.
//조건식 변수는 하나만 설정.
//원하는 변수만 증감식 써도 됨.
for(int i=0, j=0, k=0; i<10; i++, j+=100) {
System.out.println("i: " + i + " j: " + j + " k: " + k);
}//end for
//continue 반복 건너뛰기(주로 if안에서 사용)
//1에서 100까지 홀수만 출력
for (int i=1; i < 101; i++) {
if(i%2==1) {
continue;
}//end if
System.out.println(i + " ");
}//end for