● switch문
switch(변수명) {
case 값1:
실행할 문장;
break;
case 값2:
실행할 문장;
break;
case 값3:
실행할 문장;
break;
case 값4:
실행할 문장;
break;
...
default:
실행할 문장;
break;
}
※ 실행할 문장이 중복된다면 case를 한 줄에 작성할 수 있다.
switch(변수명) {
case 값1: case 값2:
실행할 문장;
break;
}
● 삼항 연산자, if문, switch문 비교
- 삼항 연산자 : 조건식이 1개 있을 경우 사용
- if문 : 조건식에 비교(>, <, >=, <=) 연산자를 사용하거나, 여러 개의 조건식을 논리 연산자(&&, ||)로 연결할 때 사용
- switch문 : 하나의 변수에 여러 개의 값이 담기는 상황에서 특정 값과 같은 지 비교를 할 때 사용
● 대입 연산자(복합 대입 연산자, 누적 연산자)
- +=, -=, /=, *=, %=, ...
(ex) int money = 10000;
money -= 1000; // money = money - 1000
System.out.println(money);
(ex) int data = 10;
data += 1; // data = data + 1;
System.out.println(data);
● 증감 연산자
- ++, --
1. 전위형
- 해당 라인부터 바로 적용된다.
(ex) ++data, --data
2. 후위형
- 다음 라인부터 적용된다.
(ex) data++, data--
※ 둘 다 사용해도 되는 상황에서는 후위형을 쓰도록 한다.
● 반복문
1. for문
- 조건식이 true일 때 반복하고, false일 때 종료한다.
for(초기식; 조건식; 증감식) {
실행할 문장
}
● for문의 동작 순서
1. 초기식
2. 조건식
3. 실행
4. 증감식
5. 조건식
6. 실행
7. 증감식
...
실습(switch문)
1. 아래 내용을 참고하여 심리 테스트 프로그램 작성하기
※ 참고
/*
* Q. 당신이 좋아하는 색을 선택하세요.
* 1. 빨간색
* 2. 노란색
* 3. 검은색
* 4. 흰색
*
* 빨간색 : 불같고 열정적이고 적극적이다.
* 노란색 : 발랄하고 밝고 귀엽고 개성있고 유하다.
* 검은색 : 묵묵하고 든든하고 냉철하고 멋지다. 그리고 강하다.
* 흰색 : 천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.
*/
- 코드
import java.util.Scanner;
public class SwitchTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String qMsg = "Q. 당신이 좋아하는 색을 선택하세요.\n"
+ "1. 빨간색\n"
+ "2. 노란색\n"
+ "3. 검은색\n"
+ "4. 흰색\n";
String redMsg = "불같고 열정적이고 적극적이다.";
String yellowMsg = "발랄하고 밝고 귀엽고 개성있고 유하다.";
String blackMsg = "묵묵하고 든든하고 냉철하고 멋지다. 그리고 강하다.";
String whiteMsg = "천사같고 깔끔하고 정리를 좋아하고 배려심이 많다.";
String errMsg = "다시 시도해주세요";
int choice = 0; // 사용자가 입력한 값을 담는 변수를 0으로 초기화하여 선언한다.
String result = "";
System.out.print(qMsg);
choice = sc.nextInt(); // 사용자에게 값을 입력받아 choice 변수에 담아준다.
switch(choice) {
case 1: // choice 변수의 값이 1일 때
result = redMsg; // result 변수에 redMsg 값을 담아준다.
break; // 즉시 switch문을 종료한다.
case 2:
result = yellowMsg;
break;
case 3:
result = blackMsg;
break;
case 4:
result = whiteMsg;
break;
default:
result = errMsg;
break;
}
System.out.println(result);
}
}
실습(증감 연산자)
1. 전위형
public class Oper5 {
public static void main(String[] args) {
int data = 10;
System.out.println(++data); // 증감값을 바로 적용하여 출력한다.
}
}
2. 후위형
public class Oper5 {
public static void main(String[] args) {
int data = 10;
System.out.println(data++); // 증감값을 바로 적용하여 출력하지 않는다.
}
}
실습(for문)
1. 1~100까지 출력
import java.util.Scanner;
public class ForTask {
public static void main(String[] args) {
for(int i = 0; i < 100; i++) {
System.out.println(i + 1); // 처음 출력되는 수가 1이 되야한다(0 + 1)
}
}
}
2. 100~1까지 출력
import java.util.Scanner;
public class ForTask {
public static void main(String[] args) {
for(int i = 0; i < 100; i++) {
System.out.println(100 - i); // 100 - 0, 100 - 1, 100 - 2, ...
}
}
}
3. 1~100까지 중 짝수만 출력
import java.util.Scanner;
public class ForTask {
public static void main(String[] args) {
for(int i = 0; i < 50; i++) { // 50번 반복
System.out.println((i + 1) * 2); // (0 + 1) * 2
}
}
}
4. 1~10까지 합 출력
import java.util.Scanner;
public class ForTask {
public static void main(String[] args) {
int total = 0; // 1~10까지의 합을 담아줄 변수
for(int i = 0; i < 10; i++) {
total = total + i + 1; // 0 + 0 + 1, 1 + 1 + 1, ...
}
System.out.println(total);
}
}
5. 1~n까지 합 출력
import java.util.Scanner;
public class ForTask {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = 0, sum = 0;
System.out.print("1부터 입력한 값 까지의 합 출력 >> ");
num = sc.nextInt();
for(int i = 0; i < num; i++) {
sum = sum + i + 1;
}
System.out.println(sum);
}
}
6. A~F까지 출력(65 ~ 70)
import java.util.Scanner;
public class ForTask {
public static void main(String[] args) {
for(int i = 0; i < 6; i++) { // A ~ F : 6번 반복
//char 타입으로 변환하여 출력한다.
System.out.println((char)(65 + i)); // 65 + 0, 65 + 1, ...
}
}
}
7. A~F중 C제외하고 출력(C를 제외한 문자 5개를 출력하기 위해서 5번 반복 진행)
import java.util.Scanner;
public class ForTask {
public static void main(String[] args) {
for(int i = 0; i < 6; i++) {
// A, B : 0, 1 -> i + 65 // C ~ F : 2 ~ 6 -> i + 66
System.out.println((char)(i > 1 ? i + 66 : i + 65));
}
}
}
8. 0 1 2 3 0 1 2 3 0 1 2 3 출력
import java.util.Scanner;
public class ForTask {
public static void main(String[] args) {
for(int i = 0; i < 12; i++) {
System.out.print(i % 4 + " "); // i를 4로 나눈 후의 나머지를 출력한다.
}
}
}
9. aBcDeFg...Z 출력
import java.util.Scanner;
public class ForTask {
public static void main(String[] args) {
for(int i = 0; i < 26; i++) {
System.out.print((char)(i % 2 == 0 ? 97 + i : 65 + i)); // 97~ : 소문자, 65~ : 대문자
}
}
}
'웹 개발 > Java' 카테고리의 다른 글
[Web_JAVA] 09 (0) | 2022.02.23 |
---|---|
[Web_JAVA] 08 (0) | 2022.02.22 |
[Web_JAVA] 06 (0) | 2022.02.20 |
[Web_JAVA] 05 (0) | 2022.02.19 |
[Web_JAVA] 04 (0) | 2022.02.18 |